Python循环向列表追加元素时如何正确添加圆括号生成元组
生成对应位置元素的元组列表
你有两个列表:
one = ['a','b','c','d'] two = ['d', 'c','b', 'a']
想要生成包含对应位置元素元组的列表:[('a', 'd'), ('b', 'c'), ('c','b'), ('d', 'a')]
你当前的代码无法得到预期结果,原因有两点:一是每次循环都把单个元素添加到列表中,最终得到扁平化的元素序列而非元组集合;二是代码里用了未定义的变量a、b,应该替换成实际的列表名one、two。
修正后的循环写法
one = ['a','b','c','d'] two = ['d', 'c','b', 'a'] final_list = [] for i in range(len(one)): # 将对应位置的两个元素打包成元组后添加到列表 final_list.append( (one[i], two[i]) ) print(final_list)
运行后会输出你想要的结果:[('a', 'd'), ('b', 'c'), ('c', 'b'), ('d', 'a')]
更简洁的Pythonic写法
可以直接使用zip()函数,它会自动将两个列表对应位置的元素打包成元组,转成列表即可得到目标结果:
one = ['a','b','c','d'] two = ['d', 'c','b', 'a'] final_list = list(zip(one, two))
这段代码和循环写法效果完全一致,且更简洁高效。
内容的提问来源于stack exchange,提问作者6114617
相关产品推荐
相关产品推荐

