【发布时间】:2021-02-23 15:51:49
【问题描述】:
我想创建一个以列表为值的字典,其中列表上的内容取决于键(数字 1 到 100)是否可被 3,5 和/或 7 整除
输出会是这样的:
{
1: ['nodiv3', 'nodiv5', 'nodiv7'],
3: ['div3', 'nodiv5', 'nodiv7'],
15: ['div3', 'div5', 'nodiv7'],
}
关于过滤列表/值而不是创建它们的类似问题。
dict_divider = {}
for x in range(0,101):
div_list= []
if x % 3 == 0:
div_list.append('div3')
else:
div_list.append('nodiv3')
if x % 5 == 0:
div_list.append('div5')
else:
div_list.append('nodiv5')
if x % 7 == 0:
div_list.append('div7')
else:
div_list.append('nodiv7')
dict_divider[x] = div_list
这很好用,但是有没有办法使用 pythonic one-/twoliner 做到这一点?
类似这样的东西:d = dict((val, range(int(val), int(val) + 2)) for val in ['1', '2', '3'])
【问题讨论】:
标签: python list-comprehension dictionary-comprehension