Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python中所有可能的列表块_Python_List - Fatal编程技术网

python中所有可能的列表块

python中所有可能的列表块,python,list,Python,List,给出一个列表,例如[2,3,4,10,20,30102] 我需要长度为3的所有可能的块/子列表,如下所示 [[2, 3, 4], [3, 4, 10], [4, 10, 20], [10, 20, 30], [20, 30, 102]] 这将完成以下工作: l= [2,3,4,10,20,30,102] res=[l[i:i+3] for i in range(len(l)-2)] print(res) 这张照片 [[2, 3, 4], [3, 4, 10], [4, 10, 20], [

给出一个列表,例如[2,3,4,10,20,30102] 我需要长度为3的所有可能的块/子列表,如下所示

[[2, 3, 4], [3, 4, 10], [4, 10, 20], [10, 20, 30], [20, 30, 102]]
这将完成以下工作:

l= [2,3,4,10,20,30,102] 
res=[l[i:i+3] for i in range(len(l)-2)]
print(res)
这张照片

[[2, 3, 4], [3, 4, 10], [4, 10, 20], [10, 20, 30], [20, 30, 102]]
这将完成以下工作:

l= [2,3,4,10,20,30,102] 
res=[l[i:i+3] for i in range(len(l)-2)]
print(res)
这张照片

[[2, 3, 4], [3, 4, 10], [4, 10, 20], [10, 20, 30], [20, 30, 102]]

此函数将完成以下工作及更多

def chunks(sequence, length):
    sub_sequences = [sequence[offset:] 
                     for offset in range(length)]
    return zip(*sub_sequences)
以你为例

list(chunks([2, 3, 4, 10, 20, 30, 102], length=3))

提供所需的输出

此函数将完成工作和更多

def chunks(sequence, length):
    sub_sequences = [sequence[offset:] 
                     for offset in range(length)]
    return zip(*sub_sequences)
以你为例

list(chunks([2, 3, 4, 10, 20, 30, 102], length=3))
给出所需的输出

使用a和操作将对您有所帮助

样本输出

>>> a = [2,3,4,10,20,30,102]

>>> max_len = 3
>>> [ a[i-max_len: i] for i in xrange(max_len, len(a))]
[[2, 3, 4], [3, 4, 10], [4, 10, 20], [10, 20, 30]]

>>> max_len = 5
>>> [ a[i-max_len: i] for i in xrange(max_len, len(a))]
[[2, 3, 4, 10, 20], [3, 4, 10, 20, 30]]
使用a和a操作将帮你一个忙

样本输出

>>> a = [2,3,4,10,20,30,102]

>>> max_len = 3
>>> [ a[i-max_len: i] for i in xrange(max_len, len(a))]
[[2, 3, 4], [3, 4, 10], [4, 10, 20], [10, 20, 30]]

>>> max_len = 5
>>> [ a[i-max_len: i] for i in xrange(max_len, len(a))]
[[2, 3, 4, 10, 20], [3, 4, 10, 20, 30]]

最简单的方法是使用切片:

>>> s = [2, 3, 4, 10, 20, 30, 102]
>>> [s[i:i+3] for i in range(0, len(s)-2)]
[[2, 3, 4], [3, 4, 10], [4, 10, 20], [10, 20, 30], [20, 30, 102]]

最简单的方法是使用切片:

>>> s = [2, 3, 4, 10, 20, 30, 102]
>>> [s[i:i+3] for i in range(0, len(s)-2)]
[[2, 3, 4], [3, 4, 10], [4, 10, 20], [10, 20, 30], [20, 30, 102]]

可能重复@CaptainTrunky这绝对不是链接问题的重复。这是一个关于连续子序列而不是子序列的问题。我已经从这个问题中撤回了标志,很抱歉这个错误。可能重复@Georgy,虽然它是相似的。可能重复@CaptainTrunky,这绝对不是链接问题的重复。这是一个关于连续子序列而不是子序列的问题。我已经从这个问题中撤回了标志,抱歉这个错误。可能是@Georgy的重复,尽管它相似。由于您的代码更短且优化,我接受您的答案ty。由于您的代码更短且优化,我接受您的答案ty。