2013-07-26 106 views
0

我有一些代碼: 有沒有更簡單的方法來改變列表元素

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

我可以使代碼更簡單嗎?

+3

定義更簡單。 –

+3

這看起來相當不錯,對我來說很簡單;它的問題究竟是什麼? –

+0

我會認爲還有另一種方法來改變「就地」元素,就像在第二個答案中一樣。但現在我看到我的代碼看起來更好) – kidig

回答

0

Seomthing like this?

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

恕我直言,太多的行沒有) – kidig

+0

是的,這是關鍵(因爲我們不知道你的意思是什麼「更簡單」) – Cyrille

0

您可以使用編解碼器模塊來讀取初始數據。將您的閱讀器包裝在codecs.getreader中,不需要重新編碼。

相關問題