我是Python新手,遇到了列表索引错误,而我不应该这样做。 我有以下变量:
date_array = ['2001','15','1']
我可以访问第一个索引。我只能访问最后一个索引,如果我尝试这样做:
^{pr2}$每次尝试时都会出现“列表索引超出范围”错误:
date_array[2]
date_array[1]
我附上以下完整代码供您参考:
import csv
import datetime
import re
marketReader = csv.reader(open('test.csv', 'rb'))
i=0
for row in marketReader:
cust_id = row[0]
date = row[1] # Is a text. Ex: '2002-1-1'
spent = row[2]
date_array = (re.split('-',date)) # Provides an array ['2002', '1', '1']
year = date_array[0]
month = date_array[1]
day = date_array[2]
# Is weekday?
weekday=datetime.date(year,month,day).weekday()
if i==200 and row[0]>3 :
break
pass
#print(day)
i += 1
任何帮助都将非常感谢!这让我发疯了!在
您确定
date
包含用连字符分隔的日期字符串吗?如果是这样的话,这应该是有效的:也许您可以添加
print date
来验证date
值是否是您所想的?另外,在你的回答中加入回溯会对我们有所帮助。在简单的答案是date_数组并不总是有3个元素。如果要直接索引列表,请添加一个检查以确保长度足够。在
或者,将索引操作包装在try块中
如果有正确的索引,Python永远不会抱怨它。如果它抱怨,那就错了。这很简单。在
现在找出为什么这个单子太短了。您可以打印出数组,然后立即发现问题所在。在
相关问题 更多 >
编程相关推荐