我有两个邮件列表。
masterlist = ['[email protected]', '[email protected]', '[email protected]', '[email protected]']
sublist = ['[email protected]', '[email protected]', '[email protected]', '[email protected]']
主列表是固定的,但子列表的顺序应该改变,以便主列表的邮件与子列表的邮件匹配,反之亦然。
例如,主列表中的email1被分配给子列表中的email3,因此子列表中的email1也应该和主列表中的email3有相同的位置。
所希望的子列表。
sublist_ordered = ['[email protected]', '[email protected]', '[email protected]', '[email protected]']
我想利用索引来获得一个索引列表,但我不知道如何进行索引。
order = [0, 1, 3, 2]
ordered_list = [sublist[i] for i in order]
我想你可以通过排序来实现这个功能。
sublist_ordered = sorted(sublist, key=lambda x: masterlist.index(x))
我想我找到了一个解决方案。
masterlist = ['[email protected]', '[email protected]', '[email protected]', '[email protected]']
sublist = ['[email protected]', '[email protected]', '[email protected]', '[email protected]']
order = []
for i in range(len(masterlist)):
mastermail = masterlist[i]
order.append(sublist.index(mastermail))
order.reverse()
sublist_ordered = [sublist[i] for i in order]
输出:
['[email protected]', '[email protected]', '[email protected]', '[email protected]']
['[email protected]', '[email protected]', '[email protected]', '[email protected]']