python比较dict列表和元组列表

python比较dict列表和元组列表,python,list,dictionary,compare,Python,List,Dictionary,Compare,我有一个dict列表和元组列表。DICT列表是一种查找表。基于配对,我必须获得密钥,对于非匹配项,我需要获得“NA”密钥 e、 g 我的结果应该是 res = ['NA': (10,10), 'NA': (15,15),"L" : (148, -1),"D" : (148,440),"C" : (148,443) ] 我知道如何赢得比赛,但我正在为“NA”而挣扎 由于我有多个同名键,这种方法在python中也可能实现吗 谢谢你NA是你字典的一个键,它必须是唯一的值。所以,您最好使用列表作为结果

我有一个dict列表和元组列表。DICT列表是一种查找表。基于配对,我必须获得密钥,对于非匹配项,我需要获得“NA”密钥

e、 g

我的结果应该是

res = ['NA': (10,10), 'NA': (15,15),"L" : (148, -1),"D" : (148,440),"C" : (148,443) ]
我知道如何赢得比赛,但我正在为“NA”而挣扎

由于我有多个同名键,这种方法在python中也可能实现吗


谢谢你

NA是你字典的一个键,它必须是唯一的值。所以,您最好使用列表作为结果。比如res=['N/A',10,10],'L',148,-1]

你的res会显示一个列表。然而,你似乎想要一本字典

因此,您可以尝试这样做:

res = { 'NA': (10,10), 'NA': (15,15),"L" : (148, -1),"D" : (148,440),"C" : (148,443) }
但是,这仍然是无效的,因为'NA'是一个键,并且应该是唯一的。因此,您应该做的是创建一个字典列表、一个元组列表或一个列表列表


我不确定哪一个最适合你想要实现的目标。

因此,使用你的一些建议解决了这个问题

首先,我将查找表转换为列表列表。然后是代码

new_data_woshi = []
#add 'NA' to all in my data list of tuples
for rec in data_woshi:
    new_data_woshi.append(['NA', rec])

#go trough loopkup if there is a match replace the current element
for rec in new_data_woshi:
    for a in lookup_table:
        if rec[1] == a[1]:
            rec[0] = a[0]

你展示了你的预期结果。代码的实际结果是什么?不,不是。最终创建的res甚至不是有效的Python对象。实际上,你似乎从一开始就在与类型作斗争。为什么lookup_table是一个字典列表而不是一个字典?请更新您的问题以显示正确/有效的最终结果,如我所写-我正在寻找最佳解决方案-如果您建议使用dict作为lookup table,那就这样吧。同样为了结果——如果它需要一个dict列表,我会改变它——只是寻找最好的选择。非常感谢。
res = { 'NA': (10,10), 'NA': (15,15),"L" : (148, -1),"D" : (148,440),"C" : (148,443) }
# List of Dictionaries:
res = [{'NA': (10,10)}, {'NA': (15,15}), {'L' : (148, -1)}, {'D' : (148,440)},{'C' : (148,443)} ]

# List of Tuples
res = [('NA', (10,10)), ('NA', (15,15)),('L', (148, -1)), ('D', (148,440)), ('C', (148,443)) ]

# List of Lists
res = [['NA', (10,10)], ['NA', (15,15)], ['L', (148, -1)], ['D', (148,440)], ['C', (148,443)]]
new_data_woshi = []
#add 'NA' to all in my data list of tuples
for rec in data_woshi:
    new_data_woshi.append(['NA', rec])

#go trough loopkup if there is a match replace the current element
for rec in new_data_woshi:
    for a in lookup_table:
        if rec[1] == a[1]:
            rec[0] = a[0]