gpt4 book ai didi

python - 如果第一个元组元素匹配,如何合并列表中的两个元组?

转载 作者:行者123 更新时间:2023-12-05 08:43:32 25 4
gpt4 key购买 nike

我有两个元组列表:

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”的元组中的第一个元素匹配,则将匹配的元组合并在一起以产生一个新的元组列表?形式:

merged_data = [(ansonca01,4,1871,1,RC1, Anson,Cap,05/06/1871),(...),(...), etc.] 

新的元组列表会将 ID 号与正确玩家的名字和姓氏相匹配。

背景信息:我正在尝试合并两个棒球统计数据的 CSV 文档,但是包含所有相关统计数据的文档不包含球员姓名,仅包含一个引用编号,例如'ansoc101',而第二个文档在一列中包含引用编号,在另一列中包含相应玩家的名字和姓氏。

CSV 的大小太大,无法手动执行此操作(大约 20,000 名玩家),所以我正在尝试自动化该过程。

最佳答案

使用列表推导式遍历您的列表:

[x + y[1:] for x in list1 for y in list2 if x[0] == y[0]]

我在列表中试过这个:

list1 = [("this", 1, 2, 3), ("that", 1, 2, 3), ("other", 1, 2, 3)]
list2 = [("this", 5, 6, 7), ("that", 10, 11, 12), ("notother", 1, 2, 3)]

得到:

[('this', 1, 2, 3, 5, 6, 7), ('that', 1, 2, 3, 10, 11, 12)]

这是你想要的吗?

关于python - 如果第一个元组元素匹配,如何合并列表中的两个元组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28814196/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com