Обновить список с вложенным списком с пониманием списка

#python #string #list-comprehension

#python #строка #понимание списка

Вопрос:

У меня есть список, подобный следующему, который создается путем чтения файла csv:

 cr = csv.reader(fileName, delimiter='t')
lineList =  [line for line in cr]
print lineList

>>>[['TestTest', 'kvhx', 'Status', 'segment'], ['', '41000020003000000', '', 'aaa'], ['', '41000020004000000', '', 'dddd'], ['', '41000020005000000', '', 'ccc'], ['', '41000020006000000', '', 'aaa'], ['', '41000020007000000', '', 'eeen'], ['', '41000020008000000', '', 'dds'], ['', '41000020009000000', '', 'ssd'], ['', '41000020010000000', '', 'eee'], ['', '41000020011000000', '', 'qq'], ['', '']]
  

Мне нравится обновлять список со следующим пониманием списка:

 NewLineList =  [[line[0], (line[1][0:3]   ';'   line[1][3:7]   ';'   line[1][7:11]), line[2], line[3]]  for line in cr]
  

Я получаю сообщение об ошибке, что индекс списка находится вне диапазона. Что я делаю не так?

Ответ №1:

Последний элемент в списке имеет ['', ''] и не имеет line[2] и line[3] . Я предлагаю вам сначала обрезать этот бесполезный дополнительный список с конца.