我正在准备一份名单。初始列表可以包含任意数量的条目,但子列表每个都包含3个条目,例如:
colony = [['A', 'B', 'C'], [1, 'b', 'c'], [2, 'b', 'c'], [3, 'b', 'c'], [4, 'b', 'c'], [5, 'b', 'c']]
每个子列表中的第一个条目是条目的序列号,需要按顺序排列
ie. 1, 2, 3, 4, 5, 6,...
A、B和C是列标题,数据在随后的列表中。我的困难在于,如果我需要添加的子列表的数目是5,那么每个条目的序号是5。如何更改代码以在每个子列表中插入正确的序号:
colony = [['A', 'B', 'C']]
add_colony = [0, 0, 0]
R = 5
i = 1
for i in range(R):
add_colony[0] = i + 1
add_colony[1] = 'b'
add_colony[2] = 'c'
colony.append(add_colony)
i = i + 1
print()
print('colony = ', colony)
产生:
colony = [['A', 'B', 'C'], [5, 'b', 'c'], [5, 'b', 'c'], [5, 'b', 'c'], [5, 'b', 'c'], [5, 'b', 'c']]
不是:
colony = [['A', 'B', 'C'], [1, 'b', 'c'], [2, 'b', 'c'], [3, 'b', 'c'], [4, 'b', 'c'], [5, 'b', 'c']]
我尝试了各种各样的变化,但最终输出不正确。你知道吗
提前谢谢 鲍勃
你好,墨尔本大学的同学们!你知道吗
正如@schwobasegll所提到的,您需要在循环的每次迭代中创建一个新的list对象,或者您只是不断地重复附加同一个对象。您也可以在每个列表的开始处使
add_colony
具有默认值['b', 'c']
,并且insert()
具有新的i
值。你知道吗举个例子:
输出:
您也可以使用列表:
祝你好运!你知道吗
您正在永久地变异并附加相同的
list
对象add_colony
。colony
中的所有列表都是对同一对象的引用。必须为每个循环迭代创建一个新列表:或更短:
1个线性列表comp,对原始列表进行变异,而不将其保存到变量中(有点奇怪):
print(colony)
输出相关问题 更多 >
编程相关推荐