[英]Can someone scan over this Python code that I wrote and let me know what I did wrong?
[英]can someone explain to me what I did wrong?
我需要帮助解读这段代码。 我只被允许使用这些特定的代码行,但我需要“解读”它以使其工作。 对我来说,这段代码看起来不错,但我似乎没有让它工作,所以我想知道为什么会这样。
我试图解决的任务如下:
使用 csv 阅读器读入文件,并以树种为键并计算树出现的次数构建字典。 使用“in”运算符查看是否添加了树,如果未添加,则将其设置为 1。打印最后带有计数的字典。
我的代码如下:
from BrowserFile import open as _
import csv
with open("treeinventory.csv", "r", newline='') as f:
count = {}
reader = csv.reader(f)
for yard in reader:
for tree in yard:
if tree in count:
count[tree] = 1
else:
count[tree] = count[tree] + 1
print(count)
如果有人可以帮助我并解释为什么这段代码不能按原样工作,我会很高兴,我正在努力学习,这将非常有帮助!
谢谢你!
通常,我们不会解决 SO 上的“作业”问题。 您还应该尝试提出具体问题。 还要在你的问题上加上更好的标题。 因此,我总是喜欢发布这个来帮助新的提问者。
因为我在这里:你的任务的答案是第 9 行和第 11 行交换了。
这是因为如果键在字典中,逻辑似乎将键tree
的字典count
设置为1
,如果键不在字典中,则将1
加到存储在count[tree]
中的值。 这将导致在语句count[tree] + 1
中访问值以执行此加法时抛出 KeyError 异常,因为那里还没有值。
当然,如果没有输入文件,我实际上无法运行代码来验证它,所以请自己尝试一下,如果出现任何具体问题,请更新您的问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.