我想扩展列表
s = 0,1
def hi(x):
global s
for i in range(x):
s = 0,s
return s
print hi(5)
结果将是“(0, (0, (0, (0, (0, (0, 1))))))”
但我真正想要的是 (0, 0, 0, 0, 0, 0, 1)。 你有什么想法吗?
最佳答案
您可以这样做:s= (0,)+s
创建一个新的元组
,并以0
开头(而不是嵌套元组)在每次迭代时就像您所做的那样。
但也许最好的方法是使用乘法在前面添加一个零元组(以避免循环):
s = (0,)*x + s
更让我困扰的是需要使用全局
。我会将 s
作为参数传递:
def hi(x,s):
return (0,)*x + s
print(hi(5,(0,1)))
产生以下元组
:
(0, 0, 0, 0, 0, 0, 1)
您可能想了解列表
和元组
及其差异:What's the difference between lists and tuples? 。使用列表要容易得多,因为它们提供了可用的就地操作(但它们不能用作字典键或存储在集合
中)
关于python - 通过将列表插入列表来扩展列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46023493/