Python - 比较两个元组列表

时间:2017-07-24 19:00:45

标签: python list

我有两个按百分比排序的元组列表(字符,百分比)。最终,我需要继续向List_A附加字符,直到达到预定义的长度(逻辑已经被处理)。

示例:

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)

谢谢!

1 个答案:

答案 0 :(得分:1)

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