2013-07-26 104 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中,不需要重新编码。

相关问题