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) 

谢谢!

+4

只是让它成为一本字典。它会让你的生活更轻松。另外,请告诉我们你做了什么。你有近100个声望,所以你现在应该知道SO不是代码编写服务。你可以继续列出你的要求,直到奶牛回家,但一旦你表明你真的试图解决你自己的问题,人们会更加容易接受。作为参考,请看[问]。 –

首先,您应该创建一个字典,将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