Python-比较两个元组列表
我有两个按百分比排序的元组列表(字符、百分比)。最后,我需要继续向列表_A添加字符,直到它达到预定义的长度(该逻辑已经被处理) 例如: 清单APython-比较两个元组列表,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', 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不是一个代码编写服务。你可以一直列出你的需求,直到奶牛回家,但一旦你表明你真的试图解决自己的问题,人们会更容易接受。作为参考,请看。我想我明白你在做什么了,谢谢你帮我。