【发布时间】:2020-12-16 21:47:32
【问题描述】:
我有两个大列表 - 在这里我将仅展示一个简化示例。
在list1我有几句话,
list1 = ['hello','stack','overflow']
在list2中,我有list1的单词的行号,以及一个用于标识单词类型的数值。
list2= [['0','10'],['2', '11'],['4', '12']]
我想用list2的行号
list2 = [['0','10'],['2', '11'],['4', '12']] #line numbers here are: 0,2,4
与list1中的对应行,
list1 = ['hello','stack','overflow'] #correspondences found here are: hello (for list2[0]) and overflow (for list2[1])
这样我就可以拥有一个带有单词及其标签的 list3。
list3 = [['hello','10'], ['overflow', '11']]
我找到了一种跨越两个列表的方法,但它非常慢,而且我认为根本没有效率。如何简化此查找过程?
list1 = ['hello','stack','overflow']
list2= [['0','10'],['2', '11'],['4', '12']]
for i in range(0, len(list1)):
for k in range(0, len(list2)):
if (str(list2[k][0]) == str(i)):
print("Found "+str(list1[i]))
找到你好 发现溢出
【问题讨论】:
-
在您的代码中您似乎使用
i作为索引,因此当您将该索引与list2[k][0]进行比较时,您实际上在位置2 处溢出,但是类型 11。根据您想要的list3,我不确定这是您想要的。 -
为什么输出是
['overflow', '12']不应该是['overflow', '11']? -
修正@DaniMesejo 写错了