Обработка списка

Рейтинг: 0Ответов: 1Опубликовано: 25.03.2015

Есть реальный список row:

row=['1101516021', '0', '1', '', 'TTT', 'ppp', '997476042736', '', '20150320092249', '20150320092249', '1', '1', '110', '', '', '00', '22', '', '999470000032', '40711569', '', '1', '0']

Его необходимо инсертить в БД. Но перед инсертом обработать так:

row[8]="to_date('"+row[8]+"','yyyymmddhh24miss')"
row[9]="to_date('"+row[9]+"','yyyymmddhh24miss')"
row[3]="'"+row[3]+"'" 
row[4]="'"+row[4]+"'" 
row[5]="'"+row[5]+"'" 
row[6]="'"+row[6]+"'" 
row[7]="'"+row[7]+"'" 
row[11]="'"+row[11]+"'"
row[12]="'"+row[12]+"'"
row[13]="'"+row[13]+"'"
row[14]="'"+row[14]+"'"
row[15]="'"+row[15]+"'"
row[16]="'"+row[16]+"'"
row[17]="'"+row[17]+"'"
row[18]="'"+row[18]+"'"
row[19]="'"+row[19]+"'"
row[0]="0"+row[0]
row[1]="0"+row[1]
row[2]="0"+row[2]
row[10]="0"+row[10]
row[20]="0"+row[20]
row[21]="0"+row[21]
row[22]="0"+row[22]

Получилось очень громоздко и некрасиво. А хотелось что-то типа

row[3,4,5,6,7,11,12,13,14,15,16,17,18,19]= ["'"+x+"'" for x in row[3,4,5,6,7,11,12,13,14,15,16,17,18,19]]

Но, к сожалению, в питоне так писать нельзя.

Ответы

▲ 1

В питоне можно писать проще и красивее. Ваш код будет выглядеть где-то так (две строки, потому что есть разрыв):

row[3:7] = ["'"+x+"'" for x in row[3:7]]
row[11:19] = ["'"+x+"'" for x in row[11:19]]