私は、Python はかなり得意だと思っていましたが、この問題に悩まされていました。
次のコードが機能します
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
ただし、このコードではエラーが発生します
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]
count += 1
print type(addr_bits)
print addr_bits
print street_num
print "completed processing " + str(count) + " records"
出力:
Traceback (most recent call last):
File "/home/linux/PycharmProjects/potholes/potholes", line 7, in <module>
street_num = addr_bits[0]
IndexError: list index out of range
Process finished with exit code 1
唯一の違いは、最初のコードが [0:1] を使用してこのリストにアクセスしたことです。