Python 3.9中如何将多列表推导式合并为一行且仅遍历一次?
解决方案
当然可以,用zip(*result)配合map()就能实现一行代码且仅遍历result一次:
first_entries, second_entries, third_entries = map(list, zip(*result))
原理说明
zip(*result)会对result进行一次遍历,将每个元组的对应位置元素重新打包:比如输入[(x1,x2,x3),(y1,y2,y3)],zip(*result)会生成(x1,y1), (x2,y2), (x3,y3)这三个元组。map(list, ...)把每个打包后的元组转换成列表。- 最后通过解包赋值,一次性得到三个目标列表。
如果你的变量名确实是seconds_entries(可能是笔误),只需把代码里的second_entries改成对应名称即可。
内容的提问来源于stack exchange,提问作者orangenhaft
相关产品推荐
相关产品推荐

