由2个元组组成的列表:我想使用字母和计数器来比较两个列表。su的元组,属于列表tu中的元组的索引。-> tu上的元组0具有(40,'b',1)->'b',su中的元组4中的1是相同的,因此su的元组4应该转到索引0,usw。
su = [(30, 'a', 1), (1, 'b', 0), (4, 'a', 0), (17, 'c', 0), (8, 'b', 1)]
tu = [(40, 'b', 1), (9, 'c', 0), (3, 'b', 0), (11, 'a', 0), (12, 'a', 1)]
for i, (s, t) in enumerate(zip(su, tu)):
if t[1] == 'H':
print(f" 'H' {i}")
我最后的通缉名单su_new = [(8,b,1),(17,'c',0),(1,'b',0),(4,'a',0),(30,'a ',1)]为了比较,我填写了两个列表,索引。[(8,b),(17,'c'),(1,'b'),(4,'a'),(30,'a')]
这有效:
from copy import copy
su = [(30, 'a', 1), (1, 'b', 0), (4, 'a', 0), (17, 'c', 0), (8, 'b', 1)]
tu = [(40, 'b', 1), (9, 'c', 0), (3, 'b', 0), (11, 'a', 0), (12, 'a', 1)]
index_dic = {}
for i, tup in enumerate(tu):
index_dic[tup[1:]] = i
new_su = copy(su)
for tup in su:
new_index = index_dic[tup[1:]]
new_su[new_index] = tup
print(new_su)
#[(8, 'b', 1), (17, 'c', 0), (1, 'b', 0), (4, 'a', 0), (30, 'a', 1)]
或者,可以将index_dic构造为字典理解:
index_dic = {tup[1:]:i for i, tup in enumerate(tu)}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句