取oldList
,我想比较每个Key
的值,例如:T1==T1
取Id,如:
oldList= [
{"Id":1, "Key":["T2","T1"]},
{"Id":2, "Key":["T3","T5"]},
{"Id":3, "Key":["T2"]},
{"Id":4, "Key":["T3","T1"]},
{"Id":5, "Key":["T2","T4"]},
{"Id":6, "Key":["T2","T1","T3"]},
]
for i in lista_2:
for KeyId in i["Key"]:
if KeyId == KeyId :
#grab Id
这是不工作,我试图创建这个结果:
newList = [
{"Key":"T1","Ids":[1,4,6]}
{"Key":"T2", "Ids":[1,3,5]}
...
]
简而言之,我不得不说,T1
有这些Ids
尝试:
oldList = [
{"Id": 1, "Key": ["T2", "T1"]},
{"Id": 2, "Key": ["T3", "T5"]},
{"Id": 3, "Key": ["T2"]},
{"Id": 4, "Key": ["T3", "T1"]},
{"Id": 5, "Key": ["T2", "T4"]},
{"Id": 6, "Key": ["T2", "T1", "T3"]},
]
out = {}
for d in oldList:
for k in d["Key"]:
out.setdefault(k, []).append(d["Id"])
print(out)
打印:
{"T2": [1, 3, 5, 6], "T1": [1, 4, 6], "T3": [2, 4, 6], "T5": [2], "T4": [5]}
将输出转换为问题中指定的格式:
out = [{"Key": k, "Ids": v} for k, v in out.items()]
print(out)
打印:
[
{"Key": "T2", "Ids": [1, 3, 5, 6]},
{"Key": "T1", "Ids": [1, 4, 6]},
{"Key": "T3", "Ids": [2, 4, 6]},
{"Key": "T5", "Ids": [2]},
{"Key": "T4", "Ids": [5]},
]