Python:用数组替换dictionary中的值

2024-04-23 14:19:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用list2的元素替换list1的第一个键的值。但输出代码如下:

输出

list[21, 21, 22, 22]
[{'a': array([[22, 22,  3]]), 'i': 'stop', 'c': array([7, 8, 9]), 'b': array([4, 5, 6])}, {'a': array([[1, 2, 3]]), 'i': 'stop', 'c': array([7, 8, 9]), 'b': array([4, 5, 6])}]

我的代码

list1 = [{'a': array([(1,2,3)]), 'b': array([4,5,6]), 'i': 'stop', 'c': array([7,8,9])}, {'a': array([(1,2,3)]), 'b': array([4,5,6]), 'i': 'stop', 'c': array([7,8,9])}]


list2 = [ array([21, 22, 23]), array([25, 26, 27])]

list3=[]

for item in liste:
 for key,value in item.iteritems():    
    if key == 'a': 
      list3.append(value)

list4=[]
for i in range(len(g_a)):
    for j in range(len(list3)):

        list3[0][0][j] = g_a[0][i]
        list4.append(list3[0][0][j]) 

print list4
print list

我想得到这个:

liste = [{'a': array([(21,22,23)]), 'b': array([4,5,6]), 'i': 'stop', 'c': array([7,8,9])}, {'a': array([(25,26,27)]), 'b': array([4,5,6]), 'i': 'stop', 'c': array([7,8,9])}]

错误在哪里?事先非常感谢!你知道吗


Tags: key代码inforvalueitemarraylist
1条回答
网友
1楼 · 发布于 2024-04-23 14:19:31

下面是python 2.7中的dict理解,其中包含一行代码:

[{k: d[k] if k != 'a' else list2[i] for k in d} for i, d in enumerate(list1)]

它给出:

[{'a': [21, 22, 23], 'i': 'stop', 'c': [7, 8, 9], 'b': [4, 5, 6]}, {'a': [25, 26, 27], 'i': 'stop', 'c': [7, 8, 9], 'b': [4, 5, 6]}]

相关问题 更多 >