为什么在使用列表理解时不生成键值对?
Why aren't key value pairs produced when a list comprehension is used?
我有一本字典,我正在尝试使用列表理解对键值对使用条件来过滤字典。该代码不会引发错误,但输出格式错误。
for 循环有效,但列表推导式无效。为什么?我更愿意使用列表理解。
news1 = {'check':1,'this':2, 'thing':3, 'out':4, 'dude':5 }
news2 = {'just':1,'for':2, 'antother':3, 'chance':4, 'now':5 }
for item in x:
if x[item] > 2:
print item
def list1(x):
print ((item, x[item]) for item in x if x[item] > 2)
圆括号表示不同的生成器理解。使用方括号:
print [(item, x[item]) for item in x if x[item] > 2]
print [(item, x[item]) for item in x if x[item] > 2]
可行,因为 () 用于其他用途,而且 x 也应定义为某种用途。
我有一本字典,我正在尝试使用列表理解对键值对使用条件来过滤字典。该代码不会引发错误,但输出格式错误。 for 循环有效,但列表推导式无效。为什么?我更愿意使用列表理解。
news1 = {'check':1,'this':2, 'thing':3, 'out':4, 'dude':5 }
news2 = {'just':1,'for':2, 'antother':3, 'chance':4, 'now':5 }
for item in x:
if x[item] > 2:
print item
def list1(x):
print ((item, x[item]) for item in x if x[item] > 2)
圆括号表示不同的生成器理解。使用方括号:
print [(item, x[item]) for item in x if x[item] > 2]
print [(item, x[item]) for item in x if x[item] > 2]
可行,因为 () 用于其他用途,而且 x 也应定义为某种用途。