如果不在另一个列表中,是否从一个列表删除项目



这个问题听起来很简单,可能有一个非常简单的解决方案。然而,我没有尝试过任何作品。

我正在导入的文件"bedwars.csv"有29行。每一行(逗号分隔(由一名玩家及其点值组成:"玩家,点数"。

我有一个16名玩家的列表,"samplePlayers.csv",他们都在"bedwars.csv"中。我正试图从"bedwars.csv"中删除不在"samplePlayers.csv"中的玩家

我的尝试在下面。

import pandas as pd    
playing = pd.read_csv('samplePlayers.csv') # test data
# imports all past game data
bedwars = pd.read_csv('bedwars.csv')
bedwars.columns = ['Players', 'Points']
players = list(bedwars.Players)
points = list(bedwars.Points)
bedwarsPoints = list(zip(players, points))
print(bedwarsPoints)
for i in bedwarsPoints:
if i not in playing:
bedwarsPoints.remove(i)
print(bedwarsPoints)

输出以下内容:

[('Star_Dragon4', 40.88), ('LethalPilot', 32.18625), ('macrocosms', 27.4), ('mrjad333', 25.82142857), ('IceKing12323', 22.51666667), ('AllieThaDon', 20.568), ('SuperToad916', 18.675), ('odsstel', 18.04285714), ('NautilusReign', 17.6), ('14ham', 16.39), ('Hunter13004', 15.72), ('sapphronn', 15.44), ('SerRonanIrwin', 14.23333333), ('LightningLucario', 14.062), ('Dispuesto', 13.565), ('KirynMissy', 13.12285714), ('Abach6', 12.68857143), ('lurchlurger', 11.78), ('Labmonjo1210', 10.78), ('humilau', 9.65125), ('BYTECH', 9.57), ('de_eh', 9.3), ('cowDude12345', 8.65), ('Menderlovemybug', 8.5), ('tenparks', 8.366666667), ('TheUW', 6.8), ('QuinnQuimby', 5.2), ('stealthguy11', 4.05), ('Buck274', 0.0)]
[('LethalPilot', 32.18625), ('mrjad333', 25.82142857), ('AllieThaDon', 20.568), ('odsstel', 18.04285714), ('14ham', 16.39), ('sapphronn', 15.44), ('LightningLucario', 14.062), ('KirynMissy', 13.12285714), ('lurchlurger', 11.78), ('humilau', 9.65125), ('de_eh', 9.3), ('Menderlovemybug', 8.5), ('TheUW', 6.8), ('stealthguy11', 4.05)]

第一个是一个长度为29(好(的数组,这个数组来自"samplePlayers.csv"。然而,第二个数组由试图移除的碎片组成。我注意到;对于";循环只删除了每隔一个值。

如果需要更多的澄清,请告诉我,我会回应的。提前感谢大家的帮助。

假设playing是与玩家名称对应的字符串列表:

bedwarsPoints = [i for i in bedwarsPoints if i[0] in playing]

最新更新