我有以下MWE:IndexError在Python3
def get_files():
file_list = ['first', 'second', 'third', 'fourth']
return file_list
def set_names(orig_flist):
file_list = []
for i in range(len(orig_flist)):
file_list[i] = orig_flist[i]
return file_list
set_names(get_files())
當我運行它,我得到這個錯誤:
Traceback (most recent call last):
File "privpub.py", line 11, in <module>
set_names(get_files())
File "privpub.py", line 8, in set_names
file_list[i] = orig_flist[i]
IndexError: list assignment index out of range
我不明白這是怎麼回事。有人可以解釋我嗎?
請注意,'set_names'中的循環只是將一個列表中的值複製到另一個列表中。這可以通過'file_list = list(orig_list)'完成。如果你不介意,那兩個列表將指向相同的數據結構,你也可以使用'file_list = orig_list'。在這種情況下,如果一個列表將被改變(例如附加值),另一個列表將會改變(因爲它指向相同的列表)。 –
是的,我知道。原始功能做了一些不同的事情,但我簡化了它以獲得MWE。 – NVaughan