Python嵌套列表优化:如何用循环替代多次append批量添加列表?
解决方法:用循环替代重复的append操作
嘿,作为Python初学者,遇到这种重复写append的情况太正常了!几十上百次重复代码不仅麻烦,还容易写错,用循环来简化完全没问题,我给你几种实用的方案:
方案1:先收集所有子列表,再循环append(最稳妥推荐)
首先把你所有的s1、s2……s100这些列表先放到一个大的列表里,然后循环遍历这个大列表,把每个子列表添加到嵌套列表中。这样代码清爽还不容易出错:
# 先定义好所有子列表 s1 = ["sea rescue","rescue boat", "boat"] s2 = ["water quality","water pollution","water"] # ... 继续定义s3到s100 # 把所有子列表收集到一个容器里 all_sub_lists = [s1, s2, s3, ..., s100] nestedlist = [] # 循环遍历,批量添加 for sub_list in all_sub_lists: nestedlist.append(sub_list) print(nestedlist)
甚至还能更简化,直接把all_sub_lists复制给nestedlist(如果不需要修改原列表的话):
nestedlist = all_sub_lists.copy() # 或者直接 nestedlist = list(all_sub_lists)
方案2:利用变量命名规则,动态获取变量(适合大量按规则命名的变量)
如果你的子列表严格按照s1、s2……s100命名,不想一个个手动写进all_sub_lists,可以用globals()函数动态获取全局变量,配合循环来批量添加:
nestedlist = [] # 循环从1到100,对应s1到s100 for i in range(1, 101): # 构造变量名,比如i=1时得到"s1" var_name = f"s{i}" # 检查这个变量是否存在,避免出错 if var_name in globals(): nestedlist.append(globals()[var_name]) print(nestedlist)
⚠️ 小提醒:这种方法虽然省事儿,但如果你的全局变量里有其他不是子列表的sxx变量,可能会被误加进去,所以如果是自己手动定义的子列表,还是方案1更安全直观哦。
额外小技巧:用extend一步到位
其实如果已经有了all_sub_lists,甚至不用写循环,直接用extend方法就能一次性把所有子列表添加到嵌套列表:
nestedlist = [] nestedlist.extend(all_sub_lists)
这样就完全替代了多次append的操作啦~
内容的提问来源于stack exchange,提问作者kzs
相关产品推荐
相关产品推荐

