列表索引超出范围错误必须具有索引指示

时间:2018-12-18 11:05:32

标签: python list

我有一个{

nested_list

(我的真实[ ['"1"', '"Casey"', '176544.328149', '0.584286566204162', '0.415713433795838', '0.168573132408324'], ['"2"', '"Riley"', '154860.665173', '0.507639071226889', '0.492360928773111', '0.0152781424537786'], ['"3"', '"Jessie"', '136381.830656', '0.47783426831522', '0.52216573168478', '0.04433146336956'], ['"4"', '"Jackie"', '132928.78874', '0.421132601798505', '0.578867398201495', '0.15773479640299'], ['"5"', '"Avery"', '121797.419516', '0.335213073103216', '0.664786926896784', '0.329573853793568'] ] 是很长的列表)。我试图从每个子列表中提取2个数据,这就是我所做的

nested_list

这给了我numerical_list = [] child_list = [] for l in nested_list: child_list.append(l[1]) child_list.append(float(l[2])) numerical_list.append(child_list) print(numerical_list) 行的list index out of range错误。但是,如果我将child_list.append(l[1])更改为for l in nested_list:或长度在for l in nested_list[:4]:内的任何范围,它就可以正常工作。这对我来说毫无意义。有人可以帮我找出问题所在吗?谢谢〜

1 个答案:

答案 0 :(得分:0)

如果您只对前两个元素感兴趣,则一种方法是使用try... except,另一种直接的方法是如下检查列表的长度。

这样,您仅将列表添加到第一个元素和第二个元素存在的地方。

numerical_list = []
child_list = []
for l in nested_list: 
    if len(l>=3):
        child_list.append(l[1])
        child_list.append(float(l[2]))
        numerical_list.append(child_list)
print(numerical_list)