Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python-比较两个元组列表_Python_List - Fatal编程技术网

Python-比较两个元组列表

Python-比较两个元组列表,python,list,Python,List,我有两个按百分比排序的元组列表(字符、百分比)。最后,我需要继续向列表_A添加字符,直到它达到预定义的长度(该逻辑已经被处理) 例如: 清单A ('a', 0.077) ('b', 0.070) ('c', 0.020) ('d', 0.015) ('z', 0.010) 清单B ('x', 0.060) ('y', 0.059) ('z', 0.055) ('a', 0.030) ('b', 0.010) 我需要: 1) 从列表_B中选择一个字符,然后查看列表_a中是否存在该字符 2) 如

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

例如:

清单A

('a', 0.077)
('b', 0.070)
('c', 0.020)
('d', 0.015)
('z', 0.010)
清单B

('x', 0.060)
('y', 0.059)
('z', 0.055)
('a', 0.030)
('b', 0.010)
我需要:

1) 从列表_B中选择一个字符,然后查看列表_a中是否存在该字符

2) 如果是,则计算它是否在列表中的百分比\u B>它在列表中的百分比

3) 如果百分比更大,请将该字符附加到列表中

因此,在本例中,“a”和“b”永远不会附加到列表a,因为列表b百分比<列表a百分比

“x”和“y”永远不会附加到列表A中,因为它们不存在于列表A中

“z”将被追加到列表_A,可能会多次,直到它在列表_A中的百分比>列表_B中的百分比

循环和百分比逻辑已在该函数之外处理。如何将这三个条件应用于这两个列表

上述示例的期望输出将是附加了另一个“z”的列表,类似于:

('a', 0.077)
('b', 0.070)
('c', 0.020)
('d', 0.015)
('z', 0.010)
('z', 0.055)

谢谢

首先,您应该创建一个字典,将
列表中的字符映射到它们的百分比值。它们的格式已经正确(假设没有重复),因此您可以使用
dict
功能。然后,迭代
列表中的元素,在字典中查找值,并将它们附加到列表中。另外,别忘了用新的(更高的)百分比更新字典

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
dict_a=dict(列表_a)
对于列表_B中的c,p:
如果c在dict_a和dict_a[c]
只要把它做成一本字典就行了。这会让你的生活更轻松。另外,请告诉我们你做了什么。您拥有近100个声誉,所以您现在应该知道so不是一个代码编写服务。你可以一直列出你的需求,直到奶牛回家,但一旦你表明你真的试图解决自己的问题,人们会更容易接受。作为参考,请看。我想我明白你在做什么了,谢谢你帮我。