2013-05-31 3 views
0

Это должно быть действительно базовым, но после некоторых поисков я еще не нашел ответа.как пропустить пустой столбец с python

Я повторяю список, в котором некоторые столбцы имеют значения в них, а некоторые - пустые. Я бы хотел, чтобы код пропускал строку, если столбец пуст. Это то, что у меня есть:

for lines in luku: 
    split = lines.split("\t") 
    if "c-sarja" in split and "F" in split[2]: 
     c_nainen = lines.split("\t") 
     if int(c_nainen[8]) >= 50: 
      old_lady = lines 
      print c_nainen[0], ": OLD," " AGE:", c_nainen[8], "years" 
     else: 
      ?? 

ошибка:

ValueError: invalid literal for int() with base 10: '' 
+0

Так что ваша проблема в том, что вы получите 'ValueError' на' int' преобразования, является то, что это? –

+0

Кроме того, почему вы выполняете одну и ту же операцию 'split()' дважды? –

+0

Да, вопрос отредактировал – jester112358

ответ

1

Вызов int() на пустой строке поднимает ValueError, как вы уже видели.

Просто используйте try/except блок:

for lines in luku: 
    split = lines.split("\t") 
    if "c-sarja" in split and "F" in split[2]: 
     try: 
      age = int(split[8]) 
     except ValueError: 
      continue   # Skip to the next iteration 
     if age >= 50: 
      old_lady = lines 
      print split[0], ": OLD," " AGE:", age, "years" 
0

Если вы в цикле и хотите, чтобы пропустить текущий элемент, просто сделать continue и исполнение будет переходить к следующему пункту в для цикла.

(В качестве альтернативы, ничего не делать. Тогда исполнение будет течь к началу следующего цикла через все равно.)

0
try: 
    age = int(c_nainen[8]) 
except ValueError: 
    continue 
Смежные вопросы