【发布时间】:2018-08-07 12:42:38
【问题描述】:
d={k:v for k in range(1,25) for v in range(2,9) if k%v==0}
print (d)
d={newdic.setdefault(key,value) for key in range(1,25) for value in range(2,9) if key%value==0}
print (newdic)
以上代码的输出是
{2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 3, 10: 5, 12: 6, 14: 7, 15: 5, 16: 8, 18: 6, 20: 5, 21: 7, 22: 2, 24: 8}
{2: 2, 3: 3, 4: 2, 5: 5, 6: 2, 7: 7, 8: 2, 9: 3, 10: 2, 12: 2, 14: 2, 15: 3, 16: 2, 18: 2, 20: 2, 21: 3, 22: 2, 24: 2}
我正在寻找的是:
{2: 2, 3: 3, 4: 2, 5: 5, 6: 2, 7: 7, 8: 2, 8: 4, 8: 8, 9: 3, 9: 9, 10: 2, 10: 5, 12: 2, 12: 3, 12: 4, ...}
基本上我希望结果集包含每个可以被数字
【问题讨论】:
-
dict的键应该是唯一的。如果您想使用dict,请使用tuple或值列表,例如{...8:[2,4,8]...}
标签: python dictionary dictionary-comprehension