Python如何按索引合并两个嵌套列表得到对应组合的结果列表
问题原因
你代码的核心问题是错误使用了嵌套循环:
- 外层每遍历一个国家时,内层都会完整遍历整个
ratios列表,current_ratios会被反复覆盖,最终只会保留ratios最后一个元素的内容 - 同时存在变量名不统一的问题:开头定义的是
final_list,后续追加元素用的是未定义的rows_list
正确实现方案
你需要的是两个列表同索引位置元素配对合并,不需要嵌套循环,直接用Python内置的zip()函数配对即可:
简洁写法(列表推导式)
final_list = [ratio + [country[0]] for ratio, country in zip(ratios, countries_list)]
易读循环写法(和你原代码风格更接近)
final_list = [] # 同时遍历同位置的比率列表和国家列表元素 for ratio_list, country_item in zip(ratios, countries_list): merged_item = ratio_list.copy() # 取出单元素列表里的国家名字符串追加进去 merged_item.append(country_item[0]) final_list.append(merged_item) print(final_list)
内容的提问来源于stack exchange,提问作者shapeless_maxi
相关产品推荐
相关产品推荐

