【发布时间】:2021-02-13 08:00:55
【问题描述】:
我声明letters哪个有很多子列表,我声明max。
我正在尝试用letters 的子列表填充一个新列表stringWithMax,但在某种程度上,子列表只是将1 中的值获取到max 的位置i 的索引.例如,我想用letters[0] 填充stringWithMax[0],但我想取从1 到max[0] 的范围,这样当我打印stringWithMax 时它会显示在控制台[['a', 'c', 'b']] 中,然后填充stringWithMax[1] letters[1] 的值,但只是将值从 1 到 max[1],这样当我再次打印 stringWithMax 时,它会显示在控制台 [['a', 'c', 'b'], ['F', 'P', 'Z', 'W']] 中,并连续与最后一行相同。最后,当我打印stringWithMax 时,控制台中的结果显示[['a', 'c', 'b'], ['F', 'P', 'Z', 'W'], ['R', 'X', 'N']],这正是我想要的。
我已经编程了
letters = [['letters1', 'a', 'c', 'b', 'BUILD'], ['letter2','F', 'P', 'Z', 'W', 'SHOW', 'BUILD'], ['leters3','R', 'X', 'N', 'BUILD', 'SHOW']]
max = [4, 5, 4]
stringWithMax = []
def reGet():
for i in range(len(letters)):
for x in range(1, max[i]):
stringWithMax.append(letters[i][x])
print(stringWithMax)
reGet()
使用此代码,我只需进入控制台['a', 'c', 'b', 'F', 'P', 'Z', 'W', 'R', 'X', 'N'],这与我想要的几乎相似,但它不是我想要的带有子列表的列表。
希望有人能帮助我,谢谢!
【问题讨论】:
-
你想要的输出是 [['a', 'c', 'b'], ['F', 'P', 'Z', 'W'], ['R', 'X','N']]?此外,不建议将列表命名为“max”,因为它也是一个内置函数名称。
标签: python python-3.x list for-loop