例如
sample = [
{'one':'test', 'two': 'hello'},
{'one':'test', 'two': 'world'},
{'one': 'test', 'two': 'python'}
]
我想改变每个'一个'来自' test'完成'
答案 0 :(得分:1)
使用for循环并重新分配键的值:
for i in sample:
i['one'] = 'done'
sample
>>>[{'one': 'done', 'two': 'hello'}, {'one': 'done', 'two': 'world'}, {'one': 'done', 'two': 'python'}]
如果列表中的某些词条可能没有“一个”键,则将重新分配到try块中:
for i in sample:
try:
i['one'] = 'done'
except KeyError:
pass
答案 1 :(得分:0)
在Python3中,您可以使用字典解包:
sample = [{'one': 'test', 'two': 'hello'}, {'one': 'test', 'two': 'world'}, {'one': 'test', 'two': 'python'}]
new_sample = [{**i, **{'one':'done'}} for i in sample]
输出:
[{'one': 'done', 'two': 'hello'}, {'one': 'done', 'two': 'world'}, {'one': 'done', 'two': 'python'}]
对于Python2,使用列表推导来创建新词典:
new_sample = [{a:'done' if a == 'one' else b for a, b in i.items()} for i in sample]
输出:
[{'one': 'done', 'two': 'hello'}, {'one': 'done', 'two': 'world'}, {'one': 'done', 'two': 'python'}]