正如问题所示,我正在尝试创建一系列元组:
[(1,1),(2,2),(3,3),(4,4),(5,5)...]
我想知道最短的方法是什么?
答案 0 :(得分:3)
>> [(i,i) for i in xrange(1,6)]
[(1, 1), (2, 2), (3, 3), (4, 4), (5, 5)]
答案 1 :(得分:3)
from itertools import repeat
zip(*repeat(xrange(1, n_tuples), 2))
优点:
n_tuples = 1000
(列表
理解: 10000循环,最好的3: 165 us 每循环)。 (我突然强调这一点,
因为它被特别要求“最快的方式”)。2
想要的数字)。import
)。答案 2 :(得分:0)
只需使用list comprehension。
number_of_tuples = 6
[(i, i) for i in range(number_of_tuples)]
答案 3 :(得分:0)
如果通过范围表示必须列表,请在此处查看其他答案。
否则,如果你只想迭代这个或类似的东西,考虑将理解用作生成器,而不用从中列出一个列表:
g = ((i, i) for i in xrange(1, 6))
然后再说:
for a, b in g:
print a, b
创建该生成器肯定比创建列表更快。