比较 2 个相同大小的元组列表,:compare and swap
Compare 2 lists of tuples with same size,:compare and swap
创建了 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)}
创建了 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)}