如何在Python中将数组存入元组并重复指定次数?
如何生成包含重复子元组的嵌套元组
最简洁的实现
直接利用元组乘法,注意给子元组加上逗号,确保它被当作单个元素处理:
bnds = ((0, 1),) * 4 print(bnds) # 输出: ((0, 1), (0, 1), (0, 1), (0, 1))
这里((0,1),)是一个包含单个子元组的元组,乘以4后会重复这个子元组4次,得到你想要的嵌套结构。
你的代码问题分析
你原来的代码输出扁平元素序列的原因:
- 初始值
g = (())等价于空元组(),并非包含空元组的嵌套元组 (0,1) * i会把子元组内的元素重复i次(比如i=2时得到(0,1,0,1)),而g + b1是把两个元组的元素直接合并,不是将b1作为子元组添加到g中
循环实现的正确写法
如果想用循环构建,每次需将(0,1)作为单个元素添加到元组:
g = () for _ in range(4): g = g + ((0, 1),) # 每次拼接包含子元组的单元素元组 print(g)
或者用列表暂存再转元组(效率更高,避免元组不可变导致的多次中间元组生成):
temp = [] for _ in range(4): temp.append((0, 1)) g = tuple(temp) print(g)
内容的提问来源于stack exchange,提问作者Mhmoud Khadija
相关产品推荐
相关产品推荐

