Python - 比较两个元组列表
问题描述:
我有两个元组列表(字符,百分比)按百分比排序。最终,我需要继续将字符附加到List_A,直到它达到预定义的长度(该逻辑已经被处理)。Python - 比较两个元组列表
实施例:
List_A
('a', 0.077)
('b', 0.070)
('c', 0.020)
('d', 0.015)
('z', 0.010)
List_B
('x', 0.060)
('y', 0.059)
('z', 0.055)
('a', 0.030)
('b', 0.010)
我需要:
1)选择从List_B一个字符,看看是否存在于List_A
2)如果是这样,计算,如果它在List_B百分比>它在List_A
3%)如果百分比越大,字符追加到List_A
所以,在这个例子中,“a”和' b”永远不会得到,因为List_B个< List_A比例追加到List_A
‘X’和‘Y’永远不会得到追加到List_A由于他们List_A不存在
‘Z’将可能会多次追加到List_A,直到它在List_A中的百分比> List_B中的百分比
循环和百分比逻辑已经在此功能之外进行了处理。我如何将这三个条件应用于这两个列表?
希望上面的例子中的输出是List_A与附加另一个 'Z',是这样的:
('a', 0.077)
('b', 0.070)
('c', 0.020)
('d', 0.015)
('z', 0.010)
('z', 0.055)
谢谢!
答
首先,您应该创建一个字典,将List_A
中的字符映射到其百分比值。他们已经在正确的格式(假设没有重复),所以你可以使用dict
函数。然后,遍历List_B
中的元素,查找字典中的值,并将它们追加到列表中。另外,不要忘记用新(更高)的百分比更新字典。
dict_a = dict(List_A)
for c, p in List_B:
if c in dict_a and dict_a[c] < p:
List_A.append((c, p))
dict_a[c] = p
+0
我想我明白你在做什么,感谢你帮助我。 – yodish
只是让它成为一本字典。它会让你的生活更轻松。另外,请告诉我们你做了什么。你有近100个声望,所以你现在应该知道SO不是代码编写服务。你可以继续列出你的要求,直到奶牛回家,但一旦你表明你真的试图解决你自己的问题,人们会更加容易接受。作为参考,请看[问]。 –