![](/img/trans.png)
[英]Searching a CSV file in Python - IndexError: list index out of range
[英]Python - List index out of range csv file
我正在嘗試制作一個字典,該字典計算csv文件第13至17列中每個條目的數量。 到目前為止,這是我的代碼:
import unicodecsv
with open('hashtag.csv', 'r') as inp, open('hashtag3.csv', 'w') as out:
writer = unicodecsv.writer(out, delimiter=';', lineterminator='\n',encoding='ISO-8859-1')
stuff = unicodecsv.reader(inp, delimiter=';', encoding='ISO-8859-1')
my_dict={}
for row in stuff:
for i in range (13,18):
if row[i] in my_dict:
my_dict[row[i]]+=1
else:
my_dict[row[i]]=1
print my_dict
但是,當我嘗試運行它時,它會告訴我這一點。
my_dict中的row [i]:IndexError:列表索引超出范圍
我嘗試單獨使用每個索引來找出錯誤的出處,並發現它適用於row [13],但不適用於我范圍內的任何其他整數。 我認為可能是因為在其他列中有一些空單元格,但我什至不能在其他列中執行if-request而不出現相同的錯誤。
出於某種原因, row
似乎並沒有全部13-18列。
將for
循環修改for
for i in range(13,min(len(row),18)):
PS,
您可以考慮使用defaultdict
而不是麻煩的if row[i] in my_dict
from collections import defaultdict
my_dict = defaultdict(int) # accessing a new key returns zero
# ...
for row in stuff:
for i in xrange(13, min(18, len(row))):
my_dict[row[i]] += 1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.