python - 在python中组合2个列表列表
问题描述
我是python的新手。我需要根据每个列表中的第一个元素合并 2 个列表列表。以下是列表:
first_list = [['aaa', 551, 10972],
['bbb', 552, 10872],
['ccc', 553, 11103],
['ddd', 554, 10912]]
second_list = [['aaa', 240],
['bbb', 120],
['ccc', 325],
['ddd', 270]]
我写的代码:
join_list = []
for x in range(0, len(first_list)):
temp = [first_list[x], second_list[x][1]]
join_list.append(temp)
以下是输出:
join_list =
[[['aaa', 551, 10972], 240],
[['bbb', 552, 10872], 120],
[['ccc', 553, 11103], 325],
[['ddd', 554, 10912], 270]]
我需要展平 中每个元素中的列表列表join_list
,例如 中的第一个元素join_list[0] = ['histogram', 551, 10972, 240]
。此外,如果第二个列表的顺序发生变化,并且如果在第一个元素中添加了一个子列表,则仍然可以根据每个元素中的第一个索引合并这两个列表。因此,它就像 Ms.Excel 中的 VLOOKUP 或 HLOOKUP 一样工作。我们应该怎么做?
解决方案
这是一种不假定任一列表的特定顺序的方式。
d = dict(second_list)
res = [i + [d[i[0]]] for i in first_list]
[['aaa', 551, 10972, 240],
['bbb', 552, 10872, 120],
['ccc', 553, 11103, 325],
['ddd', 554, 10912, 270]]
推荐阅读
- javascript - 在调用“getRules”后防止 Jquery QueryBuilder 刷新
- java - 使用 spring 批处理程序访问文件时出错。尝试了所有可能的方法同样的错误
- c# - 如何正确地进行发布请求
- jquery - 在 td 上使用 data-id 参数过滤表
- typescript - 如何编写一个函数,通过类型检查将字段添加到对象数组?
- java - 使用哪种基于 Java 节点的数据结构?
- java - JPanel 的平滑运动和同时更新 JLabel
- python - 尝试在 Python 中对 .csv 文件进行排序(创建列表并删除重复项)
- elasticsearch - 在聚合中忽略查询中的“匹配”子句
- java - 如何最好地在 hadoop 上模拟用户帐户