2015-10-03 2 views
2

Я пытаюсь выполнить довольно простую задачу: я читаю в csv-файле, который содержит идентификатор в столбце 0 и два текста, связанных с этим идентификатором в столбцах 2 и 3. Теперь я хочу сформировать список, содержащий кортежи (ID, текст). Однако каким-то образом я не могу понять это в едином понимании. Вот то, что я до сих пор:Как извлечь два кортежа из одной строки в понимании списка?

import csv 

with open(filename) as csvfile: 

    reader = csv.reader(csvfile, delimiter=';') 
    next(reader) 

    rows = [(row[0], row[2]) for row in reader]  
    rows.extend([(row[0], row[3]) for row in reader]) 

Проблема заключается в том, что extend не работает, потому что reader уже итерация ...

Любые предложения о том, как я могу сделать это в одном списке понимание ?

ответ

2

Вы можете поставить вторую итерацию:

rows = [value for row in reader 
     for value in [(row[0], row[2]), (row[0], row[3])]] 
Смежные вопросы