python比较dicts列表和元组列表

时间:2018-02-05 10:11:50

标签: python list dictionary compare

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

例如

lookup_table = [
        {"L" : (148, -1) },
        {"D" : (148,440) },
        {"N1" : (148,441)},
        {"C" : (148,443) }]

data= [(10,10),(15,15),(148,-1) ,(148,440),(148,443)]

我的结果应该是

res = ['NA': (10,10), 'NA': (15,15),"L" : (148, -1),"D" : (148,440),"C" : (148,443) ]

我知道如何获得比赛,但我正在努力争取'NA's

这种方法甚至可以用python实现,因为我有多个具有相同名称的密钥?

谢谢

3 个答案:

答案 0 :(得分:0)

NA是您词典的关键,它必须是唯一的值。所以,你最好使用list作为结果。像res = [['N/A', (10,10)],['L', (148, -1)]]

这样的东西

答案 1 :(得分:0)

您的res会显示一个列表。但是,您似乎希望改为使用dictionary

res = ['NA': (10,10), 'NA': (15,15),"L" : (148, -1),"D" : (148,440),"C" : (148,443) ]

所以你可能会尝试这样做:

res = { 'NA': (10,10), 'NA': (15,15),"L" : (148, -1),"D" : (148,440),"C" : (148,443) }

但是,这仍然无效,因为'NA'key,并且它应该是唯一的。那么你应该做的是拥有list of dictionarieslist of tupleslist of lists

# 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)]]

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

答案 2 :(得分:0)

所以使用你的一些建议解决了它

首先我将查找表转换为列表列表。其次是代码

var value1 = parseFloat(document.getElementsByName('lecturePerHour')[0].value);