繁体   English   中英

查找列表的子列表的最小索引

[英]Finding minimum index of a sub-list of a list

比如说,我有一个列表和一个从该列表构建的子列表。 我想从原始列表中最早出现的子列表中找到数字。

例子:

lst = [5, 3, 4, 1, 2, 6]
sublst = [1, 2, 3]

在这种情况下,我想lst 3 因为它出现在第 2 名,而 1 和 2 分别出现在第 4 和第 5 名。 到目前为止我所拥有的:

lst[min(lst.index(num) for num in sublst)]

这似乎非常复杂且难以阅读。 我想知道是否有更清洁的方法来写这个。

您应该使sublst成为一个集合,以使其在其中搜索更有效。 然后你可以使用一个简单for循环:

lst = [5, 3, 4, 1, 2, 6]
sublst = set([1, 2, 3])
for l in lst:
    if l in sublst:
        break
print(l)

您也可以将其写为生成器理解,在lstsublst中的所有值。 通过使用生成器,我们将在第一个匹配值处停止:

first = (l for l in lst if l in sublst)
print(next(first))

Output 在这两种情况下,您的样本数据都是

3

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM