【发布时间】:2023-01-04 15:24:11
【问题描述】:
问题
假设我有以下词典列表:
givenValues=[
{'id': '0001', 'name': 'me'},
{'id': '0002', 'name': 'me'},
{'id': '0001', 'name': 'you'},
{'id': '0003', 'name': 'hi'},
{'id': '0001', 'name': 'they'},
{'id': '0002', 'name': 'me'},
{'id': '0002', 'name': 'me'}
]
要求的结果
我想保留每个唯一 ID 的第一个,并从列表中删除所有其他词典,这样的结果是
[
{'id': '0001', 'name': 'me'},
{'id': '0002', 'name': 'me'},
{'id': '0003', 'name': 'hi'}
]
到目前为止,我已经尝试了以下。如果列表中的字典排列不同但并非总是如此,则某些尝试确实有效:
尝试 1
tempList=[]
for i in range(len(givenValues)):
for j in range(i+1, len(givenValues)):
if givenValues[i]['id']==givenValues[j]['id']:
tempList.append(givenValues[j])
for item in tempList:
if item in givenValues:
givenValues.remove(item)
结果:
[
{'id': '0001', 'name': 'me'},
{'id': '0003', 'name': 'hi'}
]
尝试 2
for i in range(len(givenValues)):
if i<len(givenValues):
for j in range(i+1, len(givenValues)):
if i<len(givenValues) and givenValues[i]['id']==givenValues[j]['id']:
givenValues.remove(givenValues[j])
结果
[
{'id': '0001', 'name': 'me'},
{'id': '0003', 'name': 'hi'},
{'id': '0001', 'name': 'they'},
{'id': '0002', 'name': 'me'}
]
请帮我解决这个问题。
【问题讨论】:
标签: python python-3.x list