Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/356.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,我有这个清单 list=[0,1,2,3,4,2,6] 我想制作另一个元组列表,如下所示: list=[(0,1),(1,2),(2,3),(3,4),(4,2),(2,6)] 是否有我可以使用的内置函数 您可以使用zip和列表理解listt[1://code>从第二个元素开始。这样做是因为在第一对中,有第一个和第二个元素zip创建对,然后对它们进行迭代,并使用()将它们存储为元组 一条建议:不要使用内置名称作为变量列表在您的情况下 listt=[0,1,2,3,4,2,6] result

我有这个清单

list=[0,1,2,3,4,2,6]
我想制作另一个元组列表,如下所示:

list=[(0,1),(1,2),(2,3),(3,4),(4,2),(2,6)]

是否有我可以使用的内置函数

您可以使用zip和列表理解
listt[1://code>从第二个元素开始。这样做是因为在第一对中,有第一个和第二个元素
zip
创建对,然后对它们进行迭代,并使用
()
将它们存储为元组

一条建议:不要使用内置名称作为变量<代码>列表
在您的情况下

listt=[0,1,2,3,4,2,6]

result = [(i) for i in zip(listt, listt[1:])]
# [(0, 1), (1, 2), (2, 3), (3, 4), (4, 2), (2, 6)]
基准绩效

根据@prashant rana的评论,我将
zip
的性能与他采用的列表100万倍于原始列表的方法进行了比较。结果如下:
zip
速度更快

import timeit
listt=[0,1,2,3,4,2,6]*1000000

%timeit [(listt[i],listt[i+1]) for i in range(len(listt)-1)]
%timeit [(i) for i in zip(listt, listt[1:])]

1.76 s ± 178 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
937 ms ± 46.6 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
[(i,list[idx+1])对于idx,如果idx
[(0,1)、(1,2)、(2,3)、(3,4)、(4,2)、(2,6)]


虽然没有内置函数,但python使您可以很容易地创建自己的函数。给你:

list = [0, 1, 2, 3, 4, 2, 6]
x = [(list[i], list[i+1]) for i in range(len(list)-1)]

使用不使用列表作为变量名,它会使内置int函数的阴影使用zip会使其变慢。可能是真的,但我假设OP没有将其用于生产目的。对于小列表,如问题中所述,它的作用是我发现它的执行时间是mine@prashantrana:检查“我的编辑”以查看比原始列表大100万倍的列表
zip
比你的方法快是的
zip
确实比你的方法快。
list = [0, 1, 2, 3, 4, 2, 6]
x = [(list[i], list[i+1]) for i in range(len(list)-1)]