列表理解与一些相同的动作python

时间:2014-05-21 15:30:06

标签: python list-comprehension

我有这样的逻辑:

for need in we_need_this:
     items_dict[need] = to_string_and_select(need)

如何进行列表理解? 我试过了:

 [items_dict[need] = to_string_and_select(need) for need in we_need_this]

但它确实有效

2 个答案:

答案 0 :(得分:3)

如果你从空items_dict开始,简单的字典理解就足够了。

items_dict = {x: to_string_and_select(x) for x in we_need_this}

如果items_dict不为空,则您需要使用update方法更新它:

items_dict.update({x: to_string_and_select(x) for x in we_need_this})

在Python 2.6及更早版本中使用dict((x, to_string_and_select(x)) for x in we_need_this)而不是dict理解。


使用列表理解

是很难实现的
from operator import setitem
[setitem(items_dict, x, to_string_and_select(x)) for x in we_need_this]

[items_dict.__setitem__(x, to_string_and_select(x)) for x in we_need_this]


答案 1 :(得分:2)

由于items_dict是字典,请使用items_dict.update和dict comprehension:

items_dict.update({
    need: to_string_and_select(need) for need in we_need_this
})