首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >解包项目并添加新项目

解包项目并添加新项目
EN

Stack Overflow用户
提问于 2013-07-23 02:34:56
回答 2查看 41关注 0票数 1

我需要创建一个新的列表,合并两个列表,其中一个是列表列表。这是我需要做的:

代码语言:javascript
运行
复制
a = [[2, 1, 4, 5, 0], [3, 6, 5, 4, 8], [2, 1, 4, 7, 8], [3, 4, 9, 5, 6], [7, 5, 2, 1, 1]]
b = [2, 3, 5, 0, 8]
c = []

for indx, item in enumerate(a):
    c.append([item, b[indx]])

这会将c生成为:

代码语言:javascript
运行
复制
[[[2, 1, 4, 5, 0], 2], [[3, 6, 5, 4, 8], 3], [[2, 1, 4, 7, 8], 5], [[3, 4, 9, 5, 6], 0], [[7, 5, 2, 1, 1], 8]]

但我需要它看起来像这样:

代码语言:javascript
运行
复制
[[2, 1, 4, 5, 0, 2], [3, 6, 5, 4, 8, 3], [2, 1, 4, 7, 8, 5], [3, 4, 9, 5, 6, 0], [7, 5, 2, 1, 1], 8]

我曾尝试在item前面添加一个*来解压元素,但不起作用。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-07-23 02:36:16

只需将这些项连接起来,从itemb创建一个新的列表

代码语言:javascript
运行
复制
for indx, item in enumerate(a):
    c.append(item + [b[indx]])

您可以使用zip() function来简化循环

代码语言:javascript
运行
复制
for a_item, b_item in zip(a, b):
    c.append(a_item + [b_item])

然后将c的整个定义转换为列表理解:

代码语言:javascript
运行
复制
c = [a_item + [b_item] for a_item, b_item in zip(a, b)]

演示:

代码语言:javascript
运行
复制
>>> a = [[2, 1, 4, 5, 0], [3, 6, 5, 4, 8], [2, 1, 4, 7, 8], [3, 4, 9, 5, 6], [7, 5, 2, 1, 1]]
>>> b = [2, 3, 5, 0, 8]
>>> [a_item + [b_item] for a_item, b_item in zip(a, b)]
[[2, 1, 4, 5, 0, 2], [3, 6, 5, 4, 8, 3], [2, 1, 4, 7, 8, 5], [3, 4, 9, 5, 6, 0], [7, 5, 2, 1, 1, 8]]
票数 2
EN

Stack Overflow用户

发布于 2013-07-23 02:38:42

您可以使用zip()函数和列表理解

代码语言:javascript
运行
复制
>>> a = [[2, 1, 4, 5, 0], [3, 6, 5, 4, 8], [2, 1, 4, 7, 8], [3, 4, 9, 5, 6], [7, 5, 2, 1, 1]]
>>> b = [2, 3, 5, 0, 8]
>>> [elem1 + [elem2] for elem1, elem2 in zip(a, b)]
[[2, 1, 4, 5, 0, 2], [3, 6, 5, 4, 8, 3], [2, 1, 4, 7, 8, 5], [3, 4, 9, 5, 6, 0], [7, 5, 2, 1, 1, 8]]
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17794882

复制
相关文章

相似问题

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