我有一个清单:
[{'key':'key1', 'version':'1'}, {'key':'key2', 'version':'2'}, {'key':'key3', 'version':'3'}]
我想从列表中的字典中删除所有其他键,并且只有“键”及其值,所以列表看起来像这样:
[{'key': 'key1'}, {'key': 'key2'}, {'key': 'key3'}]
我如何提取它?
答案 0 :(得分:2)
这是一个简单的解决方案。这使用 .pop()
方法删除您不想要的密钥。 -
lst = [{'key':'key1','version':'1'},{'key':'key2','version':'2'},{'key':'key3','version':'3'}]
for dicts in lst:
dicts.pop('version')
print(lst)
结果:
[{'key': 'key1'}, {'key': 'key2'}, {'key': 'key3'}]
这会删除所有 version
键。或者您可以使用此方法删除除所需密钥之外的所有内容:
new_l = []
for d in lst:
for key in d:
if key == 'key':
new_l.append({key: d[key]})
print(new_l)
或者更简单的是,您可以使用列表和字典理解来解决这个问题。我建议您这样做,因为它更可读和效率更高。:
new_l = [{key: d[key] for key in d if key == 'key'} for d in lst]
print(new_l)
答案 1 :(得分:0)
你可以试试这个:
l1 = [{'key':'key1','version':'1'},{'key':'key2','version':'2'},{'key':'key3','version':'3'}]
li2 = [{'key': j[x]} for j in l1 for x in j if x=='key']
print(li2)
答案 2 :(得分:0)
试试这个:
lst = [{'key':'key1','version':'1'},{'key':'key2','version':'2'},{'key':'key3','version':'3'}]
[item.pop('version') for item in lst]
或者,删除所有可能与“key”不匹配的键:
lst = [{'key':'key1','version':'1'},{'key':'key2','version':'2'},{'key':'key3','version':'3'}]
for item in lst:
for key in list(item.keys()):
item.pop(key) if key!='key' else None
答案 3 :(得分:0)
你可以试试这个 一行!
yourList = [{'key':'key1','version':'1'},{'key':'key2','version':'2'},{'key':'key3','version':'3'}]
resultList = [{'key':dic['key']} for dic in yourList if 'key' in dic]
print(resultList)