访问特定列表项时出现问题

时间:2015-09-26 14:11:26

标签: python list indexoutofrangeexception

我认为我对python相当不错,但是这个问题困扰了我。

以下代码可以使用

Iterator

输出:

enum

此代码会出错

import csv
f = open("potholes.csv")
count = 0
for row in csv.DictReader(f):
    addr_bits = row['STREET ADDRESS'].split()

    street_num = addr_bits[0:1]
    count += 1
print type(addr_bits)
print addr_bits
print street_num
print "completed processing " + str(count) + " records"

输出:

<type 'list'>
['2519', 'S', 'HALSTED', 'ST']
['2519']
completed processing 378033 records

唯一的区别是第一个代码使用[0:1]访问此列表第二个部分使用[0],但我认为这是访问列表的合法方式。

1 个答案:

答案 0 :(得分:4)

那是因为有时row ['STREET ADDRESS']为空,使row['STREET ADDRESS'].split()返回一个空列表

您可以使用切片访问空列表,但不能访问特定于索引的元素。

这是一个例子:

In [10]: x = []

In [11]: x[0:1] # this returns empty list
Out[11]: []

In [12]: x[0] # this will raise an error