2014-09-01 122 views
3

我想创建一个基于旧的,从['a','b','c']到['a12','b12','' 12' ]。Python:延长列表中的元素

一个经典的方式可以是:

a = ['a','b','c'] 
aa = [] 

for item in a: 
    aa.append(item + '12') 

print aa 

但是我想了解一个更好的办法,所以我尝试:

aa = a.extend('12%s' % item for item in l[:]) 

aa = [item.join('12') for item in l] 

,但他们不产生最正确的一个。有什么更好的方法?

谢谢。

+0

'item.join( '12')'做一些你不想要的,请在使用前阅读'join'的文档。 'a.extend'将项目添加到'a'并返回None。 – wRAR 2014-09-01 04:52:33

回答

4

aa = [item + '12' for item in a]

+0

谢谢,wRAR。这是最直接的。 :) – 2014-09-01 04:55:17

1

使用map内置功能

a = ['a','b','c'] 
aa = map(lambda x:x+"12",a) 
print aa 
>> ['a12', 'b12', 'c12'] 
+0

'map'和'filter'在大多数情况下比列表理解要少Pythonic – wRAR 2014-09-01 04:50:51

+0

谢谢,levi! 'lambda'可能不是像我这样的新手的直接方式。所以希望你不介意我不选择你的答案,即使你的答案是最早的。 :) – 2014-09-01 04:54:43

+0

@MarkK yep没问题:),好东西是你学到了新东西。 – levi 2014-09-01 04:56:47