簡體   English   中英

有人可以向我解釋我做錯了什么嗎?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM