【发布时间】:2019-04-15 14:23:19
【问题描述】:
我是 Python 的新手,最近才开始学习它。我在阅读讲师为课堂提供的 csv 文件的标题部分时遇到问题。
我正在尝试使用 dictReader 函数来确定最高元素编号并打印具有最高元素编号的头像。对于 Aang,他的最高元素是“空气”,而嘉措的最高元素是“水”,但是,我只能将它们的最高值打印出来。我知道 dictReader 的操作方式是 for 循环只能逐行遍历 csv 文件,跳过标题。
.csv 文件:
我的代码:
print("{0:<12}|{1:>12}".format("Avatar Name", "Top Element"))
import csv
filePath = "data.csv"
with open(filePath) as csvfile:
reader = csv.DictReader(csvfile)
element_air = 'Air'
element_water = 'Water'
element_earth = 'Earth'
element_fire = 'Fire'
for row in reader:
max_element = max(int(row['Air']),int(row['Water']),int(row['Earth']),int(row['Fire']))
if(max_element == row['Air']):
max_element = str(row[4])
if(max_element == row['Water']):
max_element = str(row[5])
if(max_element == row['Earth']):
max_element = str(row[6])
if(max_element == row['Fire']):
max_element = str(row[7])
print("{0:<12}|{1:^5}".format(row['name'], max_element))
print("==============================================")
我尝试将 max_element 转换为字符串,但它仍会打印出相同的结果。 row[4],row[5] 等是我试图分配这个最大元素的标题。
我什至尝试分配 max_element == element_air.....element_fire 如果最大元素匹配最高值,以便打印最高值的字符串。
实际结果:
【问题讨论】:
-
在你所有的 if 语句中为什么不做 max_element='Air' 等。因为你在每个循环中重新分配它应该可以正常工作。
-
@Chris 我做了一个与上面问题中所述类似的操作,只是我做了 max_element = element_air。它没有用。
标签: python python-3.x dictionary