Python 3如何将两个列表按对应元素配对并指定格式输出?
解决两个列表对应元素配对的问题
嘿,这事儿在Python里其实有个超好用的内置函数能直接搞定——zip()!你只需要把两个列表按你想要的顺序传给它,再转成列表就行。
看这个示例代码:
test1 = [1,2,3,4] test2 = ["a","b","c","d"] result = list(zip(test2, test1)) print(result)
运行这段代码就会输出你想要的结果:[('a', 1), ('b', 2), ('c', 3), ('d', 4)]
为啥这么做?
zip()函数的作用就是把多个可迭代对象(比如列表)中对应位置的元素打包成元组,然后返回一个迭代器。这里我们把test2放在前面、test1放后面,就能保证元组里先出现字符串、再出现数字。- 因为
zip()返回的是迭代器,所以用list()把它转换成你需要的列表格式。
补充说明
如果你的两个列表长度不一样,zip()会以较短的那个列表的长度为准,多余的元素会被忽略。要是你想保留所有元素,可以用itertools.zip_longest(),不过这个需要先导入itertools模块。
之前你尝试用字符串格式化没成功,是因为字符串格式化主要用来处理字符串的拼接和替换,而这里的需求是元素配对打包,显然用zip()是更直接高效的方案~
内容的提问来源于stack exchange,提问作者Mingo Bille
相关产品推荐
相关产品推荐

