使用列表推导在包含字典的列表中使用元素本身更改属性

时间:2017-04-02 22:41:36

标签: python list dictionary enumeration

好的,所以你可以用这种方式用简单的数字值改变列表中的元素:

>>> a=[1,2,3,4,5,1,2,3,4,5,1]
>>> for n,i in enumerate(a):
...   if i==1:
...      a[n]=10
...
>>> a
[10, 2, 3, 4, 5, 10, 2, 3, 4, 5, 10]

和列表理解:

>>> a=[1,2,3,1,3,2,1,1]
>>> a = [4 if x==1 else x for x in a]
>>> a
[4, 2, 3, 4, 3, 2, 4, 4]

但是如果我有一个字典列表,我是否可以使用列表理解来改变一个元素而不是其中一个属性?那有什么表达吗?

1 个答案:

答案 0 :(得分:1)

这就是你要找的东西:

a = [{1: [1,2,3], 2: [3,4,5]}]

a = [{k: [1,1,1]} if k == 2 else {k: v} for x in a for k, v in x.items()]