![](/img/trans.png)
[英]Python dictionary comprehension: assign value to key, where value is a list
[英]creating dictionary where value is key using comprehension
我正在尝试使用以下理解方法字典生成一个字典,其中 value 是一个列表。
>>> x = ['a','b','c']
>>> y = {'a':1,'b':2}
>>> z = {i:[].append(j) for (i,j) in y.items() if i in x and j < 2}
>>> z
{'a': None}
我试图得到:
{'a':[1]}
有人可以让我知道怎么做吗? 我想我得到 None 作为价值,因为它作为函数并返回 None 。
代码
x = ['a','b','c']
y = {'a':1,'b':2}
z = {key: [y[key]] for key in list(y.keys()) if key in x and y[key] < 2}
print(z)
输出:
{'a': [1]}
说明
list(y.keys())
从y
得到每个键x
我继续否则我跳到下一个键key
中值y
是smalller大于2key
为键,并创建一个包含y
值作为值的列表你的代码中的错误只是[].append(j)
返回None
所以你只能[].append(j)
:
z = {i:[j] for (i,j) in y.items() if i in x and j < 2}
另一个奇怪的事情是为j
创建一个列表,它是单个值,但是,因为您在预期的输出中需要它并且您肯定有这样做的理由,我按照您的需要保留了输出,但一般来说,如果它是单个值最好直接存储在字典中,而不是在字典中为其创建嵌套列表
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.