2015-02-06 5 views
0

Я не могу найти решение, которое работает для меня. У меня есть список и следующий код:Python Если список пуст

def summer(position): 
    sum1 = 0.0 
    for line in dataFile: 
     position2 = position + 1 
     items = line.split(',', position2) 
     items = items[position:position2] 
     if len(items) < 1: 
      sum1 = 0.0 
     else: 
      result = [float(x.strip(' "')) for x in items] 
      sum1 = sum1 + sum(row for row in result) 

    return sum1 

Я получаю следующее сообщение об ошибке:

['offer_id'] 
Sum: 91383276.0 
----- 

['decision_id'] 
Sum: 215141303.0 
----- 

['offer_type_cd'] 
      result = [float(x.strip(' "')) for x in items] 
    ValueError: empty string for float() 

Значение в списке [ «»] Я также попробовал, если пункты == " ''»или пункты == '' и т.д.

+0

Покажите нам первые три строки dataFile – smci

ответ

2

Вы должны проверить отдельных пустых элементов:

result = [float(x.strip(' "')) for x in items if x.strip(' "')] 
0

Если вы планируете включить Position2, то вам необходимо создать свой кусок от положении1 до Position2 + 1.

items = [position1:position2+1] 

и проверьте, чтобы увидеть, если каждый элемент в срезе пуст.

Смежные вопросы