【发布时间】:2020-11-06 22:34:09
【问题描述】:
我正在尝试使用以下理解方法生成一个字典,其中 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。
【问题讨论】:
-
你很亲密:
z = {k: [v] for k, v in y.items() if k in x and v < 2} -
:) 太棒了。这个社区太棒了!谢谢
-
[].append(j)是None因为它所做的只是将一些东西附加到匿名列表作为副作用,但不返回任何值。append不返回新列表(或修改后的列表),它只是修改已经存在的列表。
标签: python dictionary-comprehension