我再次陷入困境。 我有一个名为players.txt的文件,如下所示:
Brad Ebert,471
Michael Johnson,459
Brodie Smith,466
Kade Simpson,466
Luke Shuey,465
Justin Westhoff,464
我的代码如下:
items = open('players.txt')
items = [i.split(',', 1)[1] for i in items]
player = input('Player: ')
while player != ' ':
player = input('Player: ')
for person in player:
result = sum(items[person]) for person in player)
print (result)
如何制作,以便在输入播放器名称时,我得到以下结果? (代码应该停在空白输入上):
Player: Justin Westhoff
Player: Brodie Smith
Player: Brad Ebert
Player:
Total score for team: 1401
答案 0 :(得分:1)
像@pbible所说,使用dict是最好的方法。这是我的解决方案:
items = open('players.txt')
myDict = dict()
for i in items:
myKey, myVal = i.split(',')
myDict[myKey.lower()] = int(myVal)
result = 0
while True:
player = input('Player: ')
if player = '':
break
elif myDict.get(player.lower()):
result += myDict[player]
else:
print('Player not found')
print('Total score for team: ' + str(result))
答案 1 :(得分:0)
首先尝试设置这样的字典:
这是交互式python的输出
>>> f = open('players.txt')
>>> playerMap = {}
>>> for line in f:
... line = line.strip()
... parts = line.split(",")
... playerMap[parts[0]] = int(parts[1])
...
>>> playerMap
{'Michael Johnson': 459, 'Justin Westhoff': 464, 'Luke Shuey': 465, 'Kade Simpson': 466, 'Brad Ebert': 471, 'Brodie Smith': 466}
>>>
然后检查播放器字符串是否是playerMap中的键
result = 0
while player != '':
if player in playerMap:
result += playerMap[player]
#If player is empty now no work will be done
player = input('Player: ')
#print result when you are done
print(result)
答案 2 :(得分:-1)
您正在尝试对文件对象进行列表理解。
尝试将第一行重新加入
items = open('players.txt').read().split('\n')
所以项目将是列表理解所期望的每行的列表