我对编码还很陌生,而且我被困在当前的项目中。我有一个 .csv 文件,而不是使用电子表格,我试图编写一个 python 程序来查找特定列的最大值。到目前为止,我有以下内容:
import csv
with open('american_colleges__universities_1993.csv', 'rU') as f:
reader = csv.reader(f)
answer = 0
for column in reader :
answer = 0
for i in column[14]:
if i>answer:
answer = i
print answer
我不断收到类似的信息:
9
问题是它只返回最大的整数(恰好是 9),而它应该返回大约 15,000。我怀疑该程序只是将每个数字视为其自身的值...我怎样才能让它查看每个条目中的整个数字?
抱歉这个新问题。谢谢!
请您参考如下方法:
当前您正在比较 column[14] 中的每个字符,并将最大词法字符设置为 answer。假设您想对整个 column[14] 进行算术比较,您需要将逗号replace 为 '' 并转换为 int,例如:
with open('american_colleges__universities_1993.csv', 'rU') as f:
reader = csv.reader(f)
next(reader) # Skip header row
answer = max(int(column[14].replace(',', '')) for column in reader)
print answer
如果您需要具有最大column[14] 的整行,您也可以将key 参数用于max:
answer = max(reader, key=lambda column: int(column[14].replace(',','')))
print answer
