gpt4 book ai didi

python - 在一定范围内的两个列表中查找元素

转载 作者:太空宇宙 更新时间:2023-11-03 12:18:20 25 4
gpt4 key购买 nike

所以我有两个列表 L1 的格式如下:

L1 = ['12:55:35.87', '12:55:35.70', ...]
L2 = ['12:55:35.53', '12:55:35.30', ...]

我试图在两个列表中找到以相同 4 个字符开头的对,即xx:x 然后返回每个列表对的索引

到目前为止我有:

for pair1 in L1:
for pair2 in L2:
if pair1[:4] in pair2:
print(L1.index(pair1))

这似乎没有返回正确的索引,而且显然没有返回第二个列表的索引。任何帮助将不胜感激。

最佳答案

以下是让您的代码正常工作的方法。请记住,这是一个幼稚的解决方案,如果您的列表很大,有更快的方法可以解决这个问题。这里的运行时间是 O(n^2) 但这可以在线性时间内解决。

for i,pair1 in enumerate(L1):
for j,pair2 in enumerate(L2):
if pair1[:4] == pair2[:4]:
print("list1: %s , list2: %s" % (i,j))

更新:对于 future 的访问者,这里有一个平均线性时间的解决方案:

from collections import defaultdict
l1_map = defaultdict([])

for i,val in enumerate(L1):
prefix = val[:4]
l1_map[prefix].append(i)


for j,val in enumerate(L2):
prefix = val[:4]
for l1 in l1_map[prefix]:
print("list1: %s , list2: %s" % (l1,j))

关于python - 在一定范围内的两个列表中查找元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49452567/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com