簡體   English   中英

如何解決IndexError:在Python中使用數組內部循環在列表中分配索引超出范圍

[英]How to resolve IndexError: list assignment index out of range using array inside loop in Python

我是python的新手。 我正在創建2個數組file_name (存儲文件名)和path (存儲文件路徑)。 path數組的值在while循環內分配。 但是我得到了錯誤:

IndexError:Python中的列表分配索引超出范圍

我已經在這個上浪費了幾個小時,但是沒有得到我所期望的輸出。 因此,您能告訴我我是在哪里弄亂的嗎? 任何幫助將不勝感激。 提前致謝。

我的代碼:

file_name = ['abc','xyz','pqr','mno','def','ghi','rst','uvw','jkl']
path = []

count = 0
while count < 9:
    path[count] = "D:\\Work\\"+file_name[count]+".csv"
    print (path[count])
    count = count + 1

預期產量:

D:\\Work\\abc.csv
D:\\Work\\xyz.csv
D:\\Work\\pqr.csv
D:\\Work\\mno.csv
D:\\Work\\def.csv
D:\\Work\\ghi.csv
D:\\Work\\rst.csv
D:\\Work\\uvw.csv
D:\\Work\\jkl.csv

如果path[count]不存在,則無法訪問path[count]並為其分配內容。

要創建一個新列表,請使用.append() 您根本不需要跟蹤計數器(在Python中很少需要執行C樣式的循環; Python方式是直接遍歷list / tuple / dictionary的元素):

file_name = ['abc','xyz','pqr','mno','def','ghi','rst','uvw','jkl']
path = []

for item in file_name:
    newpath = "D:\\Work\\" + item + ".csv"
    # or better: newpath = r"D:\Work\{}.csv".format(item)
    path.append(newpath)
    print(newpath)

您正在尋找append方法。

file_name = ['abc','xyz','pqr','mno','def','ghi','rst','uvw','jkl']
path = []

count = 0
while count < 9:
    path.append("D:\\Work\\"+file_name[count]+".csv")
    print (path[count])
    count = count + 1

您將獲得預期的輸出。

您需要將一個項目添加到列表中。 然后看起來像這樣:

file_name = ['abc','xyz','pqr','mno','def','ghi','rst','uvw','jkl']
path = []

count = 0
while count < 9:
    path.append("D:\\Work\\"+file_name[count]+".csv")
    print (path[count])
    count = count + 1

因為當您創建一個空列表時,它沒有項目,因此無法通過索引訪問它。 您還可以跳過while循環,並使用一些Python sugar獲得相同的效果:

file_name = ['abc','xyz','pqr','mno','def','ghi','rst','uvw','jkl']
path = ['D:\\Work\\' + x + '.csv' for x in file_name]
for p in path:
    print(p)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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