如何定义Python列表长度并在不扩容的情况下填充元素?
不扩容填充预定义长度的Python列表
你遇到的问题根源是append()方法的作用是在列表末尾追加新元素,而非替换已有元素。你先创建了长度为len(x)的全0列表,之后用append()把y的元素一个个加在列表后面,自然会导致列表长度变成原长度加上y的长度。
要在不扩容的情况下填充列表,直接通过索引赋值替换原有元素即可:
Ages = [0] * len(x) for i in range(len(random_list)): Ages[i] = y[i]
这段代码会把Ages中第i个位置的0直接替换为y[i],列表长度始终保持为len(x),不会额外扩容。
如果y的长度和len(x)完全一致,还可以用更简洁的方式直接赋值:
Ages = list(y) # 或者 Ages = y.copy(),避免直接引用原列表
如果y的长度和len(x)不匹配,需要保证最终列表长度固定为len(x),可以做截断或补0处理:
# 截断y到len(x)长度,若y长度不足则补0 Ages = y[:len(x)] + [0] * max(len(x) - len(y), 0)
内容的提问来源于stack exchange,提问作者Paradoxac
相关产品推荐
相关产品推荐

