l = [1,2,4]
for i in range(3):
a = l[i]
我試著在上面做,但它不起作用,它說'builtin_function_or_method'物件不能被解釋為整數。誰能說出這是為什么并告訴我如何修復此編輯:在此之前的代碼中有一些內容,這是因為我在做 .lower 而不是 .lower() 對不起,伙計們
uj5u.com熱心網友回復:
讓我們在解決它之前解釋一下您的代碼的作用。編輯在答案的底部可用
for i in range(3):
a = l[i]
它的作用是創建一個從 0 到 2 的數字“范圍”,但它應該從 1(或 0)到 3。為什么?計算機已經被訓練成從 0 開始計數,而不是像正常人那樣從 1 開始計數,隨后它們會少 1。(這是一個簡化的,隨著時間的推移你會學到更長的) 現在你的第二行代碼將變數 a 分配給串列 l 中的一項的值。讓我們看看在這段時間內將分配什么值'a'
1 (1st item)
2 (2nd item)
IndexError: Out of range error (there is no 3rd item)
那么你如何解決這個問題呢?一種方法是向您的串列 l 添加更多專案。所以讓我們在 l 中再添加 2 個專案(3 和 4)這是我們的變數 l 現在
l = [1, 2, 3, 4]
這是我們現在的輸出
1 (1st item)
2 (2nd item)
3 (3rd item)
正如您所注意到的,它跳過了第 4 項,因為我們指定只迭代串列中的 3 項。如果您想“遍歷串列”,請不要再猶豫了!
觀察
for i in l:
print(i)
這將創建一個 for 回圈,從頭到尾逐一遍歷串列 l 中的每個專案,以便您查看變數 i 中的當前專案!在我們的代碼中,它只是在每次 for 回圈轉到串列中的下一項時列印變數 i。
1
2
3
4
一旦到達終點就停止!別擔心,我們在學習代碼時都去過那里:)
更新:根據您所說的,我假設您是否想將變數 a 分配到您將使用的串列“l”中的第二位
a = l[1]
是的,要獲得第二名,您需要輸入 1。訪問第一項也是如此,您將 l[1] 更改為 l[0]。這是因為計算機從 0 開始計數,而不是人類傳統上從 1 開始計數
uj5u.com熱心網友回復:
您撰寫的代碼甚至在語法上都不正確。
l = [1,2]
for i in range(len(l)):
# you had no colon, so the first error you should have gotten is a syntax error.
# the second error you would have gotten is a value error, because you try to set 'a' to values
# that don't exist. a more dynamic way to do it anyways is to cycle through the
# length of the list.
a = l[i]
我不確定你為什么要這樣做,因為它會導致a = 2. 忠于你的問題,做你所問的唯一合理的方法就是這樣簡單。
a = l[2] # or whatever index you're trying to get
你的方法,即使它編譯正確,也不會完成你所說的你想要的。
正如 'meh' 和 'shriakhilc' 所提到的,請記住索引從 0 開始,因此串列l只有 0 和 1 的索引。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/410880.html
標籤:
