比较列表中的多个列表

时间:2018-11-10 18:35:52

标签: python

我的Python作业需要一些帮助。 目前,我创建了4个列表。我将那些列表中的项目分开以从每个项目创建一个列表。看起来像这样(一个列表中有5000个项目):

[['n', 'AattGNtA', '0.5196'], ['t', 'gnGCTTcC', '0.7973'], ['P', 'GGTcANTN', '0.5197'], etc. ... ]

我的目标是尝试编写一个循环,该循环将比较所有四个列表之间每个项目的第二个条目(例如AattGNtA)(所有四个列表中的第一个条目的第二个条目,所有列表中的第二个条目的第二个条目等等)上)。如果满足此条件,则程序还应检查每个项目中的第三项是否大于0.2。如果序列相同且第三个条目大于0.2,则程序应将此计数加1。 最后,结果应为所有列表中相同的项目总数(因此最多为5000)。 我试图编写几个while循环来执行此操作,但是我很难比较像这样的多个复杂列表。 这是我的最后一次尝试,因为以前的所有尝试均导致错误(到目前为止,我仅尝试比较第二个条目):

all_duplicates = 0
while(True):
    for item[1] in zip(item_list1,item_list2,item_list3,item_list4):
        if item[1]= item[1]
            all_duplicates = all_duplicates + 1
else: pass

谢谢您的帮助。

1 个答案:

答案 0 :(得分:0)

data = [['n', 'AattGNtA', '0.5196'], ['t', 'gnGCTTcC', '0.7973'], ['P', 'GGTcANTN', '0.5197']]
columns = list(zip(*data))

duplicates = 0
for index, item in enumerate(columns[1]):
    if columns[1].count(item) > 1 and float(columns[2][index]) > 0.2:
        duplicates += 1
print(duplicates)