2013-03-27 167 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