【问题标题】:Python - How to find an item exists in a list (or sublist)?Python - 如何查找列表(或子列表)中存在的项目?
【发布时间】:2015-09-26 04:39:45
【问题描述】:

例如

my_list = [1, 2, 3, 4, [5, 6], [7, 8]]

我想知道 7 是否在 my_list.?答案应该是 True,因为它是最后一个子列表的一部分。有什么想法吗?

【问题讨论】:

  • 你有没有尝试过?如果只有一层嵌套,这似乎是一个简单的问题。
  • 一个级别很简单,但如果级别是任意的呢?
  • 是的,Anand,如果不使用额外空间,我该怎么办。我试图找出是否有任何功能可以立即找到它而无需创建任何其他列表或使用额外空间
  • Alex,是的,这也是我的问题的一部分。我正在寻找任何简单而干净的函数来调用来解决这个问题而不使用额外的空间。

标签: python list search sublist


【解决方案1】:

如果mylist 是您可以使用itertools.chain.from_iterable() 的唯一列表的列表

import itertools
mylist = [[1,2,3,4],[5,6],[7,8]]
merged = list(itertools.chain.from_iterable(mylist))
7 in merged

由于我们有一个与列表混合的整数列表,我们定义了一个自定义过滤器。这也可以在单个列表理解中完成,但我现在无法弄清楚。

mylist = [1,2,3,4,[5,6],[7,8]]
merged = []
map(lambda l: merged.extend(l) if isinstance(l, list) else merged.append(l), [i for i in mylist])
7 in merged

您也可以使用已弃用的compiler.ast.flatten 函数:

from compiler.ast import flatten
merged = flatten(mylist)

【讨论】:

  • 感谢您的回答,但是如果我们不能使用额外的空间怎么办?
猜你喜欢
  • 1970-01-01
  • 2021-12-24
  • 1970-01-01
  • 2023-03-11
  • 1970-01-01
  • 2022-11-21
  • 1970-01-01
  • 2011-08-03
  • 2022-11-12
相关资源
最近更新 更多