我有两个元组的列表:
playerinfo = [(ansonca01,4,1871,1,RC1),(forceda01,44,1871,1,WS3),(mathebo01,68,1871,1,FW1)]
idmatch = [(ansonca01,Anson,Cap,05/06/1871),(aaroh101,Aaron,Hank,04/13/1954),(aarot101,Aaron,Tommie,04/10/1962)]
我想知道的是,如何迭代两个列表,如果“playerinfo”中的元组中的第一个元素与“idmatch”中的元组中的第一个元素匹配,则将匹配的元组合并在一起以生成一个新的元组列表?形式如下:
^{pr2}$新的元组列表将具有与正确玩家的名字和姓氏相匹配的ID号。在
背景信息:我试图合并两个棒球统计的CSV文档,但是包含所有相关统计信息的CSV文档不包含球员姓名,只有一个参考号,例如“ansoc101”,而第二个文档的一列包含参考号,另一列包含对应球员的姓和名。在
CSV的大小太大了,无法手动完成这项工作(大约20000名玩家),所以我正在尝试自动化这个过程。在
您可以先创建一个字典来快速查找ID号,然后通过列表理解将两个列表中的数据非常有效地合并在一起:
使用列表理解来迭代列表:
我在单子上试过了:
^{pr2}$得到了:
这就是你想要的吗?在
字典
playerinfo
list并创建字典,其中key是元组中的第一个项,value是所有项的列表。在idmatch
列表并检查结果字典中元组的第一项。若存在,则使用列表扩展方法用新值扩展键的值。在演示:
输出:
^{pr2}$相关问题 更多 >
编程相关推荐