相关疑难解决方法(0)

Python - 验证一个列表是否是另一个列表的子集

我需要验证列表是否是另一个列表的一个子集 - 布尔返回是我寻求的全部内容.
在交叉路口之后测试相等的较小列表是最快的方法吗?
考虑到需要比较的数据集数量,性能至关重要.
根据讨论添加更多事实:

  1. 对于许多测试,其中一个列表是否相同?
    它确实是其中一个是静态查找表
  2. 它需要是一个列表吗?
    它没有 - 静态查找表可以是性能最佳的.
    动态的是一个dict,我们从中提取密钥以执行静态查找.

在这种情况下,最佳解决方案是什么?

python list

160
推荐指数
6
解决办法
18万
查看次数

测试列表是否包含另一个Python列表

如何测试列表是否包含另一个列表(即,它是一个连续的子序列).假设有一个名为contains的函数:

contains([1,2], [-1, 0, 1, 2]) # Returns [2, 3] (contains returns [start, end])
contains([1,3], [-1, 0, 1, 2]) # Returns False
contains([1, 2], [[1, 2], 3]) # Returns False
contains([[1, 2]], [[1, 2], 3]) # Returns [0, 0]
Run Code Online (Sandbox Code Playgroud)

编辑:

contains([2, 1], [-1, 0, 1, 2]) # Returns False
contains([-1, 1, 2], [-1, 0, 1, 2]) # Returns False
contains([0, 1, 2], [-1, 0, 1, 2]) # Returns [1, 3]
Run Code Online (Sandbox Code Playgroud)

python contains list list-comparison

43
推荐指数
6
解决办法
7万
查看次数

检查Python中是否存在切片列表

我想编写一个函数来确定子列表是否存在于更大的列表中.

list1 = [1,0,1,1,1,0,0]
list2 = [1,0,1,0,1,0,1]

#Should return true
sublistExists(list1, [1,1,1])

#Should return false
sublistExists(list2, [1,1,1])
Run Code Online (Sandbox Code Playgroud)

有没有Python功能可以做到这一点?

python list

36
推荐指数
2
解决办法
3万
查看次数

Python:在另一个列表的成员中查找列表(按顺序)

如果我有这个:

a='abcdefghij'
b='de'
Run Code Online (Sandbox Code Playgroud)

然后这在一个:

b in a => True
Run Code Online (Sandbox Code Playgroud)

有没有办法用列表做类似的事情?像这样:

a=list('abcdefghij')
b=list('de')

b in a => False 
Run Code Online (Sandbox Code Playgroud)

'False'结果是可以理解的 - 因为它正确地寻找元素'de',而不是(我碰巧想要它做什么)'d'后跟'e'

这是有效的,我知道:

a=['a', 'b', 'c', ['d', 'e'], 'f', 'g', 'h']
b=list('de')
b in a => True
Run Code Online (Sandbox Code Playgroud)

我可以处理数据以获得我想要的东西 - 但是有一个简短的Pythonic方法吗?

澄清:我需要在这里保留排序(b = ['e','d'],应该返回False).

如果它有帮助,我所拥有的是列表列表:这些列表表示有向图中从节点1到节点-x的所有可能路径(访问节点列表):我想要"排除"常见路径任何更长的路径.(因此寻找所有不可缩短的"原子"路径,构成所有较长的路径).

有关

python list

17
推荐指数
3
解决办法
3万
查看次数

是否有内置的Python用于确定迭代是否包含某个序列?

例如,类似于:

>>> [1, 2, 3].contains_sequence([1, 2])
True
>>> [1, 2, 3].contains_sequence([4])
False
Run Code Online (Sandbox Code Playgroud)

我知道in运算符可以为字符串执行此操作:

>>> "12" in "123"
True
Run Code Online (Sandbox Code Playgroud)

但我正在寻找可以在迭代上运行的东西.

python

5
推荐指数
1
解决办法
263
查看次数

查看列表是否存在于另一个列表中?

基本上我可以说:

>>> a = [1,3,2,2,2]
>>> b = [1,3,2]
Run Code Online (Sandbox Code Playgroud)

我想看看b中的所有元素是否存在于a和同一顺序中.因此,对于上面的例子,b将存在于a中.

我有点希望这是一个非常简单的单行答案.

python list

3
推荐指数
1
解决办法
1117
查看次数

标签 统计

python ×6

list ×5

contains ×1

list-comparison ×1