2013-03-27 120 views
0

我有一些簡單的代碼:的Python:列表索引超出範圍

fname = "file1_12345678_23653345.tar.gz" 
splitted_file_name = fname.split('.')[0].split('_') 

,如果我嘗試:

for i in xrange(len(splitted_file_name)): 
    print str(i) + " - " + str(splitted_file_name[i]) 

,但如果我想打印:

print splitted_file_name[0] 
print splitted_file_name[1] 
print splitted_file_name[2] 

我得到一個錯誤:

print splitted_file_name[1] 
IndexError: list index out of range 

我不知道爲什麼,有什麼想法?

+6

我沒有這個錯誤。你確定你做了你所問題中所描述的一切嗎? – 2013-03-27 09:10:17

+0

適合我。 – msvalkon 2013-03-27 09:10:27

+0

是的,我確定!在forloop工作正常,但如果我想打印單索引提出一個錯誤! – 2013-03-27 09:12:58

回答

1
first = fname.split('.') 
    first = fname.split('.') 
    second= splitted_file_name[0].split('_') 
    print splitted_file_name[0] 
    print splitted_file_name[1] 
    print splitted_file_name[2] 
0

我試過你的代碼,我沒有得到任何這樣的錯誤!

的代碼:

fname = "file1_12345678_23653345.tar.gz" 

splitted_file_name = fname.split('.')[0].split('_') 

輸出:

['file1', '12345678', '23653345'] 

的代碼:

for i in range(len(splitted_file_name)): 

print str(i)+" - "+str(splitted_file_name[i]) 

輸出:

0 - file1 

1 - 12345678 

2 - 23653345 

代碼:

for i in range(len(splitted_file_name)): 

    print splitted_file_name[i] 

輸出:

file1 

12345678 

23653345