我有两个不同长度的列表。
list1=['T','P','M','M','A','R','k','M','G','C']
list2=['T','P','M','M','A','R','k','S','G','C','N']
通过比较list1
和list2
:结果必须是:
new_list1=['T','P','M','M','A','R','k','mis','M', 'G','C','mis']
new_list2=['T','P','M','M','A','R','k','S', 'mis','G','C','N']
该方法是将两个列表中的元素与重复项匹配。如果在同一位置存在不匹配的元素。例如,在list1
中,M
有三个副本,list2
中有两个副本。结果必须指的是此位置M
中缺少list2
。 S
中缺少字符list1
,结果也必须分配给遗失。
任何人都可以帮助我吗?
答案 0 :(得分:1)
您也可以尝试一下。它很简单:
list1=['T','P','M','M','A','R','k','M','G','C']
list2 =['T','P','M','M','A','R','k','S','G','C','N']
if len(list1) > len(list2):
diff = len(list1) - len(list2)
for i in range(0, diff):
list2.append('mis')
else:
diff = len(list2) - len(list1)
for i in range(0, diff):
list1.append('mis')
new_list1 = []
new_list2 = []
for i in zip(list1,list2):
if i[0] == i[1]:
new_list1.append(i[0])
new_list2.append(i[1])
elif i[0] == 'mis' or i[1] == 'mis':
new_list1.append(i[0])
new_list2.append(i[1])
else:
new_list1.append(i[0])
new_list2.append('mis')
new_list1.append('mis')
new_list2.append(i[1])
print new_list1
print new_list2
输出:
['T', 'P', 'M', 'M', 'A', 'R', 'k', 'M', 'mis', 'G', 'C', 'mis']
['T', 'P', 'M', 'M', 'A', 'R', 'k', 'mis', 'S', 'G', 'C', 'N']