![](/img/trans.png)
[英]IndexError: list assignment index out of range - Python with an array
[英]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.