[英]Partially merge to list in python
经典,但我是 python 的新手......并且有一个无法解决的问题。 我假设这相当容易。
我有两个 csv 文件,一个从网络上抓取(a=[]),包含 20000+ 行,另一个从本地系统导出 [b=[]] 80+ 行。 我已经打开文件并将数据存储在列表 a 和 b 中。 它们的结构类似于下面的示例。
a = [[1,'a','b','a@b',11],
[2,'c','d','c@b',22],
[3,'e','f','e@b',33]]
b = [['a','banana','A',100],
['e','apple','A',100]]
现在我想通过列表a go 并且当列表a中每个子列表的索引1等于列表b中子列表的索引0时,它应该append索引a的3和4。 所以我最终会得到
c= [['a','banana','A',100,'a@b',11],
['e','apple','A',100,'e@b',33],]
如何做到这一点。 如果该解决方案教授有关 Python 中的结构的知识,则该解决方案不需要很快。 但是,如果用 pandas 轻松解决,我会全力以赴。 如果这个论坛不适合这样的问题,我很抱歉。
这没有经过优化,也不是有效的时间复杂度,但它是可读的并且可以完成工作。
c = []
for a_entry in a:
for b_entry in b:
if a_entry[1] == b_entry[0]:
c.append(b_entry + a_entry[3:])
通过迭代a
来制作字典( {index1:[index2,index3],...}
)
对b
做同样的事情,除了对键使用索引零,对值使用[1:]
遍历b
字典中的项目
a
字典中获取值
b
项的值从修改后的字典中重建b
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.