我正在做一个棒球项目,我正在尝试将两个不同csv文件中的运动员名字与其相应的统计数据进行匹配
例如,我有两个列表,如下所示:
player_stats1 = [[Clayton Kershaw, stats, more stats, more stats]]
player_stats2 = [[Clayton Kershaw, stats, more stats, more stats]]
我有一个if语句检查两个名字是否相同
if player_stats1[1][1] and player_stats1[1][2] == player_stats2[1][1] and player_stats2[1][2]:
print('True')
else:
print('false')
我需要检查名称是否相同,以及它们是否附加了来自players_stats2[1][0] and players_stats2[1][5] to the original list, players_stats1
的数据
我试过了
length1 = len(player_stats1)
players_stats3 = []
i = 1
while i < length1:
if player_stats1[1][i] and player_stats1[1][i + 1] == player_stats2[1][i] and player_stats2[1][i + 1]:
players_stats3.append(player_stats2[i][0], player_stats2[i][5])
else:
print('')
i += 1
但我总是出错
IndexError: list index out of range
你有
但使用:
你怎么知道玩家\u stats1[1][i]存在
你不应该:
附加:
这是假设player_stats1和player_stats2的长度相同。不过,总的来说,这似乎是个错误的解决方案。 您应该从一个csv中创建一个键/值对,并检查另一个,因为在这个解决方案中,如果您有一个顺序错误的匹配播放器,您将找不到它
你有一个列表。所以改变你的索引方式
在这个例子中,玩家的名字是第一个项目,所以如果这是正确的,那么它应该是下面得到名字
示例
你原来的if语句也有问题
如果两个列表都包含“truthy”值,则始终打印True。相反,你需要比较两者
备选方案:
您还可以使用
zip
将列表分组在一起,并同时遍历这两个列表zip
的缺点是:如果你想找到所有的匹配,那么你将需要通过两个循环来比较每一个
更改
while i < length1 -1
:因为长度将是4,但列表索引最多只有[3]
相关问题 更多 >
编程相关推荐