如何使用一行不包括最后一个元素在列表中打印字典的值



在我的一个作业中,我的任务是这样做的:

1 >>> d = {1: 'one', 2: 'two', 3: 'three', 4: 'four', 5: 5}
2 >>> print ________
3 ['one', 'two', 'three', 'four']

如何仅在上面代码的第2行中使用一行代码,而无需导入任何其他功能以获取第3行中的OUPUT ['one', 'two', 'three', 'four']

我只能在不使用print(list(d.values()))排除最后一个元素的情况下打印出所有字典的所有值,而我的结果是['one', 'two', 'three', 'four', 5]

如果要仅打印字符串字典值(在给定示例中将排除最后一个整数值),则可以在print()内使用列表理解(),并检查词典是否值是字符串类型:

print([val for val in d.values() if type(val) == str])

如果您有这样的字典,这也将有效:

d = {1: 'one', 2: 'two', 3: 'three', 4: 'four', 5: 5, 6: 'six'}
print([val for val in d.values() if type(val) == str])
['one', 'two', 'three', 'four', 'six']

一行答案:

list(d.values())[:-1]

d.values()不可订阅,因此您需要将其投入列表。然后,您可以获得整个列表减去最后一个元素

print (list(d.values())[:-1])
print([v for (k,v) in d.items() if type(v) != int])

输出:

['one', 'two', 'three', 'four']

最新更新