我想将list1
的第一个键的值替换为list2
的元素。但是以下代码的输出是:
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])}]
错误在哪里?非常感谢你提前!
答案 0 :(得分:0)
这是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]}]