首页 > 解决方案 > 比较列表中的多个列表

问题描述

我的 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

感谢您的任何帮助。

标签: python

解决方案


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)

推荐阅读