Python中如何更简洁地将两个列表按对应位置合并为嵌套列表
更简洁的实现方式
不需要引入numpy完成这个配对操作,直接用Python内置的zip()函数即可,代码更轻量,也没有第三方依赖:
lista = ['a', 'b'] listb = ['c', 'd'] res = [list(pair) for pair in zip(lista, listb)]
执行后得到的res就是你需要的[['a', 'c'], ['b', 'd']]结构。
实现说明
zip(lista, listb)会按索引位置依次把两个列表的对应元素打包成元组,遍历后得到的内容依次是('a', 'c')、('b', 'd')- 外层的列表推导式负责把每个打包得到的元组转换成列表,匹配你需要的子元素格式
- 如果你实际使用场景不要求子元素必须是列表,还可以进一步简化成
res = list(zip(lista, listb)),只是这个写法得到的结果是[('a', 'c'), ('b', 'd')],子元素为元组类型
和你当前用numpy转置再转列表的方案比,内置zip的写法不需要额外安装依赖,处理小规模普通列表时执行效率更高,代码可读性也更好。
内容的提问来源于stack exchange,提问作者f. c.
相关产品推荐
相关产品推荐

