Python如何替换二维列表中所有子列表的第二个元素
问题解决:替换二维列表子列表的第二个元素
你遇到的AttributeError是因为列表没有replace方法,replace是字符串的专属方法,而你代码里的e是子列表,自然调用不了这个方法。另外你写的e[0][1]也是错误的,e本身就是单个子列表,要取它的第二个元素应该用e[1](Python索引从0开始)。
给你两种可行的解决方案:
方案1:直接修改原列表
如果不需要保留原列表的初始数据,可以直接遍历每个子列表,修改其第二个元素:
eleli = [['ele', 'ele', 'ele', 'ele', 'ele'], ['ele', 'ele', 'ele', 'ele', 'ele'], ['ele', 'ele', 'ele', 'ele', 'ele']] rep = "ele2" for sub_list in eleli: sub_list[1] = rep # 索引1对应子列表的第二个元素 print(eleli)
运行后就能得到你想要的结果:
[['ele', 'ele2', 'ele', 'ele', 'ele'], ['ele', 'ele2', 'ele', 'ele', 'ele'], ['ele', 'ele2', 'ele', 'ele', 'ele']]
方案2:创建新列表(不修改原数据)
如果需要保留原列表的初始状态,可以复制每个子列表后再修改,最后存入新列表:
eleli = [['ele', 'ele', 'ele', 'ele', 'ele'], ['ele', 'ele', 'ele', 'ele', 'ele'], ['ele', 'ele', 'ele', 'ele', 'ele']] rep = "ele2" last = [] for sub_list in eleli: # 复制子列表,避免修改原列表数据 new_sub = sub_list.copy() new_sub[1] = rep last.append(new_sub) print(last)
这个方案的输出和方案1完全一致,但原列表eleli会保持初始状态不变。
内容的提问来源于stack exchange,提问作者anfwkdrn
相关产品推荐
相关产品推荐

