首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >列表的组合列表(n=200k),并在最短的父列表耗尽后停止

列表的组合列表(n=200k),并在最短的父列表耗尽后停止
EN

Stack Overflow用户
提问于 2022-06-03 20:54:47
回答 2查看 52关注 0票数 0

我有以下清单:

代码语言:javascript
运行
复制
# list_1 : n=100k
# list_2 : n=200k
list_1 = [['name1', '001'], ['name2', '001'], ...]
list_2 = [['other1', '003'], ['other2', '005'], ...]

我希望将它们合并到下面,同时在耗尽任何一个列表时停止(如zip()所示):

代码语言:javascript
运行
复制
combined_list = [['name1', '001', 'other1', '003'], ['name2', '001', 'other2', '005']]

我尝试过zip(),但是这会为每个组合子列表生成一个由两个列表组成的元组。

是否有一种方法可以简洁地实现这一点(而不需要在zip()之后再循环)?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-06-03 20:57:19

你试过什么密码?我怀疑您对如何调用zip()有异议。

这将在每个索引上将两个列表一起添加,使用zip()

代码语言:javascript
运行
复制
list_1 = [['name1', '001'], ['name2', '001']]
list_2 = [['other1', '003'], ['other2', '005']]

combined_list = [x + y for x, y in zip(list_1, list_2)]

print(combined_list)
代码语言:javascript
运行
复制
[['name1', '001', 'other1', '003'], ['name2', '001', 'other2', '005']]
票数 5
EN

Stack Overflow用户

发布于 2022-06-03 21:09:01

另一种方法(在网上试试!):

代码语言:javascript
运行
复制
from operator import concat

combined_list = list(map(concat, list_1, list_2))

具有1000倍长列表的基准测试(在网上试试!):

代码语言:javascript
运行
复制
148 us  map_concat
192 us  list_comprehension

148 us  map_concat
192 us  list_comprehension

148 us  map_concat
193 us  list_comprehension
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72495075

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档