繁体   English   中英

(Python)如何将整数列表转换为集合列表,其中每个集合都是一对这些整数? [重复]

[英](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)]

说明:如果siter 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM