[英]list inspect second item print first item in list
我正在尝试从列表(从文件)中剖析项目
file data with name, number of goals, passes.
Luis,8,3
Montes and Kyle,10,8
Sharon, 22, 4
Nayum,3,8
至今:
filen=open("WorldData.txt", 'r')
values = []##List
for line in open(filen):
values.append(line.rstrip('\n').split(','))
xl=values
numlist=[]
for line in xl:
numlist.append(int(line[1]))#second element which are goals
x=(max(numlist))
print(x)
filen.close()
可能会得出:22,但我也在尝试找到获胜者的名字。 我尝试建立索引,所以我可以找到值是[::]的行号,然后可以打印第一个元素...
print(xl.index(str(x)))
但它说
ValueError: '22' is not in the list
所以我什至不能到达那里。
如何找到目标最多的人?
这是我将如何读取csv数据的方法:
import csv
data={}
with open(fn, 'r') as fin:
reader=csv.reader(fin)
header=next(reader)
for row in reader:
data[row[0]]=list(map(int, row[1:]))
print(data)
# {'Luis': [8, 3], 'Nayum': [3, 8], 'Montes and Kyle': [10, 8], 'Sharon': [22, 4]}
现在,只要找到具有该值的最大值项number of goals
是每个列表中的第一个元素。 您可以将内置的max与关键功能配合使用,以查看谁赢得了比赛:
print(max(data.items(), key=lambda t: t[1][0]))
# ('Sharon', [22, 4])
使用numlist作为字典。 。 所以代码会像
goals = 0
numlist={}
for line in xl:
numlist[line[0]]=int(line[1])#second element witch are goals
for player in numlist:
if numlist[player] > goals:
winner = player
goals = numlist[player]
print goals, winner
答案将是22 Sharon。 会照顾好重复者,或者在多个获胜者之间并列。 为此,您可以维护获奖者名单并附加。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.