Python列表元素替换问题:如何将J[0][0]替换为Leftover[0]
问题:替换二维列表指定位置元素
需求:将二维列表J的J[0][0]位置元素替换为列表Leftover的第一个元素Leftover[0]。
原代码
Leftover = [1] J = [[0, 0, 7, 9, 10]] for i in range(len(J)): J[0][Leftover[0]] = 1 print(J)
当前输出
[[0, 1, 7, 9, 10]]
期望输出
[[1,0,7,9,10]]
问题分析与修正
当前代码的问题在于:J[0][Leftover[0]] = 1这一行,Leftover[0]的值是1,所以实际修改的是J[0][1]的位置,而非目标位置J[0][0];同时代码直接赋值固定值1,没有正确使用Leftover[0]的内容。
简化修正方案(适用于J只有一个子列表的场景)
Leftover = [1] J = [[0, 0, 7, 9, 10]] # 直接替换目标位置元素 J[0][0] = Leftover[0] print(J)
通用修正方案(适用于J有多个子列表,需替换每个子列表第一个元素的场景)
Leftover = [1] J = [[0, 0, 7, 9, 10]] for sublist in J: sublist[0] = Leftover[0] print(J)
运行修正后的代码即可得到期望输出。
内容的提问来源于stack exchange,提问作者aamirmodi123
相关产品推荐
相关产品推荐

