将相同的元组复制到N.

art*_*eco 0 python

我有相同的元组(0,1)分配来定义3个输入值的限制:

bounds = ((0, 1), (0, 1), (0, 1))
Run Code Online (Sandbox Code Playgroud)

是否有Pythonic方法为N个输入分配相同的元组?例如:

bounds = ((0, 1), (0, 1), (0, 1), (0, 1), (0, 1), ...Nth(0, 1))
Run Code Online (Sandbox Code Playgroud)

Pet*_*per 6

您可以将序列相乘以获得其内容的N个浅拷贝:

bounds = ((0, 1),) * n
Run Code Online (Sandbox Code Playgroud)

这对于仅包含不可变类型的整数元组或其他不可变数据结构很好,但如果将它用于可变数据结构(如列表),则会引起令人惊讶的行为 - 您会获得对同一列表的n个引用序列,因为它是浅层副本.在这种情况下,理解是创建n个独立对象的最惯用的方法:

mutable_bounds = [[0, 1] for _ in range(n)]
Run Code Online (Sandbox Code Playgroud)

  • 非常优雅的解决方案确实是@Peter DeGlopper!谢谢 (2认同)