我想创建一个长度可变的元组序列。例如,有时我可能想要一个包含3个元组的序列:
((0.0, 100.0), (0.0, 100.0), (0.0,100.0))
其他时候我可能想要一个包含4个元组的序列:
((0.0, 100.0), (0.0, 100.0), (0.0, 100.0), (0.0, 100.0))
我正在使用Python 2.7。最快的方法是什么?
只需将普通的生成器与range
:
>>> tuple((0., 100.) for _ in range(3))
((0.0, 100.0), (0.0, 100.0), (0.0, 100.0))
>>> tuple((0., 100.) for _ in range(4))
((0.0, 100.0), (0.0, 100.0), (0.0, 100.0), (0.0, 100.0))
您也可以使用乘法,但是如果您决定包括可变对象,这可能会产生意想不到的效果,因为它们是通过引用复制的:
>>> ((0., 100.),) * 3
((0.0, 100.0), (0.0, 100.0), (0.0, 100.0))
>>> ((0., 100.),) * 4
((0.0, 100.0), (0.0, 100.0), (0.0, 100.0), (0.0, 100.0))
>>> a = ((0., 100., []),) * 3
>>> a
((0.0, 100.0, []), (0.0, 100.0, []), (0.0, 100.0, []))
>>> a[0][-1].append(1)
>>> a
((0.0, 100.0, [1]), (0.0, 100.0, [1]), (0.0, 100.0, [1]))
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句