python - 对于列表列表中的每个元素,与单独的平面列表中的相应值合并
问题描述
假设我有两个列表:
lst1 = [['a', 'b', 'c'], ['a', 'b', 'c'], ['a', 'b', 'c']]
lst2 = ['x', 'y', 'z']
我想将两者结合起来,使输出看起来像:
output = [['ax', 'bx', 'cx'], ['ay', 'by', 'cy'], ['az', 'bz', 'cz']]
我可以只用列表理解来做到这一点吗?使用zip()
我尝试了以下代码行
output = [[x + y for x,y in zip(sublist, lst2)] for sublist in lst1]
但正如预期的那样,它产生了[['ax', 'by', 'cz'], ['ax', 'by', 'cz'], ['ax', 'by', 'cz']]
。我正在尝试在这行代码上构建以获得我想要的输出。但不知道从这里去哪里。
我在想我可能需要访问 lst2 中的索引,enumerate()
以便我只能将字符串应用lst2[0]
到第一个子列表,然后应用lst2[1]
到第二个子列表等。这可以通过列表理解来完成吗?
解决方案
这是一个解决方案,您可以尝试一下,
lst1 = [['a', 'b', 'c'], ['a', 'b', 'c'], ['a', 'b', 'c']]
lst2 = ['x', 'y', 'z']
print(
[[ii + j for ii in i] for i, j in zip(lst1, lst2)]
)
[['ax', 'bx', 'cx'], ['ay', 'by', 'cy'], ['az', 'bz', 'cz']]
推荐阅读
- c# - 将项目迁移到另一个 Repo 后,VS Code 智能不起作用
- javascript - Thymeleaf onclick 意外的标识符 javascript
- python - 在 OpenCV-Python 中保存两个 gbr 值
- mysql - 根据 SQL 中的设置规则过滤列中的行
- c++ - 尚未声明 std::numbers - Windows 上的 GCC 11.2
- typescript - 手动生成 d.ts 文件后如何使用 .d.ts 文件
- javascript - Redux 状态更改后组件不会重新渲染
- node.js - 谷歌云存储为所有文件上传 0 字节 Node.js
- python - 如何安装 p4a 及其对 windows 的依赖
- etl - Datastage - 读取最新文件