相关疑难解决方法(0)

测试列表是否包含另一个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中的另一个序列中的最佳方法

这是"字符串包含子字符串"问题到(更多)任意类型的概括.

给定一个序列(例如列表或元组),确定另一个序列是否在其中的最佳方法是什么?作为奖励,它应该返回子序列开始的元素的索引:

用法示例(序列中的序列):

>>> seq_in_seq([5,6],  [4,'a',3,5,6])
3
>>> seq_in_seq([5,7],  [4,'a',3,5,6])
-1 # or None, or whatever
Run Code Online (Sandbox Code Playgroud)

到目前为止,我只是依靠蛮力,它似乎缓慢,丑陋,笨拙.

python algorithm sequence

25
推荐指数
4
解决办法
2万
查看次数

查找列表的所有可能的子列表

假设我有以下列表

[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18]
Run Code Online (Sandbox Code Playgroud)

我想找到某个长度的所有可能的子列表,其中它们不包含一个特定的数字并且不会丢失数字的顺序.

例如,所有可能的长度为6而没有12的子列表是:

[1,2,3,4,5,6]
[2,3,4,5,6,7]
[3,4,5,6,7,8]
[4,5,6,7,8,9]
[5,6,7,8,9,10]
[6,7,8,9,10,11]
[13,14,15,16,17,18]
Run Code Online (Sandbox Code Playgroud)

问题是,我想在一个非常大的列表中进行,我想要最快捷的方式.

用我的方法更新:

oldlist = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18]
newlist = []
length = 6
exclude = 12
for i in oldlist:
   if length+i>len(oldlist):
       break
   else:
       mylist.append(oldlist[i:(i+length)]
for i in newlist:
    if exclude in i:
       newlist.remove(i)
Run Code Online (Sandbox Code Playgroud)

我知道这不是最好的方法,这就是为什么我需要一个更好的方法.

python

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

检查列表中是否存在保持顺序的子列表,并允许通配符

我想检查一个子列表是否存在于另一个(更大的)列表中,元素的顺序完全相同。我也希望它允许通配符。例如,我有以下列表:

>>> my_lists
[[0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 2, 2],
[1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 0, 0, 1, 1, 1, 1],
[1, 1, 1, 1, 2, 2, 1, 2, 2, 2, 1, 1, 2, 1, 1, 0, 0, 1, 1, 1, 1],
[1, 1, 1, 1, 0, 2, 1, 2, 1, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 1, 0],
[0, 0, …
Run Code Online (Sandbox Code Playgroud)

python list

9
推荐指数
1
解决办法
186
查看次数

如何检查列表中是否存在子序列?

在python中,可以使用is关键字来检查包含,例如

>>> 3 in [1,2,3,4,5]
True
Run Code Online (Sandbox Code Playgroud)

但是,如果它检查单个整数列表是否在引用列表中,则不会产生相同的输出[1,2,3,4,5]

>>> [3] in [1,2,3,4,5]
False
Run Code Online (Sandbox Code Playgroud)

此外,无法通过以下方式检查参考列表中的子序列:

>>> [3,4,5] in [1,2,3,4,5]
False
Run Code Online (Sandbox Code Playgroud)

有没有办法让函数检查子序列,以便以下返回true?例如函数调用x_in_y()

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

也许来自itertools或的东西operator

(注意,输入列表可以是非唯一的)

python list python-itertools

6
推荐指数
1
解决办法
5278
查看次数

如何查找一个列表是否按顺序是另一个列表的子集?

我知道如何查找一个列表是否是另一个列表的子集。但是我想知道如何确定一个列表是另一个列表的有序子集。通过有序的子集,我的意思是两个列表中的元素都以相同的顺序

例如,如果我有以下列表

A = [1,2,3]
B = [1,2]
C = [2,1]
Run Code Online (Sandbox Code Playgroud)

这里B是A的有序子集,但C不是(尽管A具有C的所有元素)

python

5
推荐指数
2
解决办法
2414
查看次数

在python中查找列表中的子列表

我有一个数字列表

l = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 1, 0, 0, 0, 0]
[0, 0, 2, 1, 1, 2, 0, 0, 0, 0]
[0, 0, 2, 1, 1, 2, 2, …
Run Code Online (Sandbox Code Playgroud)

python

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

python 如何检查一个列表是否在另一个具有相同顺序的列表中

我的问题与典型的问题不同。假设我们有,

X = ['123', '456', '789']
Run Code Online (Sandbox Code Playgroud)

并且,我们想要查找 X 中是否有另一个列表具有完全相同的顺序。例如,

A = ['123', '456']
# should return True since A in X with same order
B = ['456', '123']
# should return False since elements in B are not in same order with X
C = ['123', '789']
# should return False since elements in C are not adjacent in X
Run Code Online (Sandbox Code Playgroud)

谁能给我任何想法吗?

python list

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

为什么 Python “in” 返回 False

为什么下面的代码在 Python中返回FALSE?不应该是TRUE,因为 b 已经包含“T”。

a = ["T"]
b = ["H", "T"]
a in b
False
Run Code Online (Sandbox Code Playgroud)

python

-4
推荐指数
1
解决办法
113
查看次数