2013-07-26 14 views
0

У меня есть некоторый код: Есть более простой способ изменить список элементов

report['ipconfig'] = [line.decode('cp866') for line in report['ipconfig']] 

Могу ли я сделать этот код более простым?

+3

Определить более простой. –

+3

Это выглядит довольно проворно и просто для меня; в чем проблема с этим, точно? –

+0

Я подумал, что есть другой способ изменить элементы «на месте», как во втором ответе. Но теперь я вижу, что мой код выглядит лучше) – kidig

ответ

0

Seomthing как это?

for i, line in enumerate(report['ipconfig']): 
    report['ipconfig'][i] = line.decode('cp866') 
0

Я не знаю, если это более простой (что это вообще значит?), Но это другой способ сделать это:

report['ipconfig'] = map(lambda x : x.decode('cp866'), report['ipconfig']) 
0

вам нужно что-то более многословный ли?

lst = list() 
for line in report['ipconfig']: 
    lst.append(line.decode('cp866')) 
report['ipconfig'] = lst 
+0

IMHO, слишком много строк ни для чего) – kidig

+0

Да, это был момент (поскольку мы не знали, что вы имели в виду под «более простым») – Cyrille

0

Вы можете использовать модуль кодеков для считывания исходных данных. Оберните читателя в codecs.getreader и перекодирование не понадобится.

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