
[英]Python: How to convert a list of integers into nested lists of integers where max-min for each nested list never exceeds X?
[英](Python) How can I convert a list of integers into a list of sets where each set is a pair of these integers? [duplicate]
这个问题已经在这里有了答案:
我有一个列表E = [1,2,3,4,5,6,7,8]
,我想将其转换为E = [{1,2}, {3,4}, {5,6}, {7,8}]
的计算成本最低。 特别是,我想将此扩展到E
大实例。
在Python(3.5及更高版本)中,有没有一种有效的方法?
备注:因为我正在从事与图形相关的主题,所以E
总是以偶数大小的列表形式给出
我相信最好的方法是在列表理解中使用iter
+ zip
s = iter(E)
[{a,b} for a,b in zip(s,s)]
说明:如果s
是iter
zip(s,s)
对E
执行相当有效的成对分组。
您可以遍历2个E
的滚动切片:
[set(E[i:i+2]) for i in range(0, len(E), 2)]
请注意,这也适用于奇数大小的列表。
您还可以使用zip()
加上切片:
[{x, y} for x, y in zip(E[::2], E[1::2])]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.