【发布时间】:2018-11-09 15:25:38
【问题描述】:
我有一个包含 3 个列表的列表,每个列表中都有 1 个列表。
data_set = [
['AB12345',['T','T','C','C','A','C','A','G','C','T','T','T','T','C']],
['AB12346',['T','T','C','C','A','C','C','G','C','T','C','T','T','C']],
['AB12347',['T','G','C','C','A','C','G','G','C','T','T','C','T','C']]
]
我有一个比较方法,它会给我包含字符的列表的相似性,而不是 id。
def compare(_from, _to):
similarity = 0
length = len(_from)
if len(_from) != len(_to):
raise Exception("Cannot be compared due to different length.")
for i in range(length):
if _from[i] == _to[i]:
similarity += 1
return similarity / length * 100
compare(data_set[0][1], data_set[1][1])
通过使用比较方法,我使用 for 循环将“a”列表与其他列表进行比较,如“a”与“a”比较,“a”与“b”比较,“a”与“b”比较“C”。
for i in range(len(data_set)):
data_set[i].append(compare(data_set[0][1], data_set[i][1]))
print(round(data_set[i][2], 2), end=", ")
但是在完成第一个列表与其他列表及其自身的比较后,我如何循环到第二个列表和第三个列表并继续再次与其他列表进行比较以获得它们的相似性?比如,(“b”与“a”比较,“b”与“b”比较,“b”与“c”比较)和(“c”与“a”比较,“c”与“b”比较, "c" 与 "c" 相比)。
【问题讨论】:
标签: python python-3.x list comparison nested-lists