簡體   English   中英

Python-列表索引超出范圍csv文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM