使用标点符号扩展列表中的每个字符串

时间:2014-10-10 08:33:59

标签: python-2.7

我有一个很长的清单,如:

['This', 'Hello', 'Good', ...]

现在我想要一个新的列表,如下所示:

['This', 'This.','This,','This?','This!','This:','Hello','Hello.','Hello,','Hello?','Hello!','Hello:', 'Good', 'Good.', ...]

所以我想为每个单词添加标点符号。这甚至可能吗?

2 个答案:

答案 0 :(得分:1)

这将是一个简单的方法:

newlist =[]
for item in oldlist:
    newlist.append(item)
    newlist.append(item+'.')
    newlist.append(item+',')
    newlist.append(item+'?')
    newlist.append(item+'!')
    newlist.append(item+':')

稍短一些:

newlist =[]
adds = ['', ',', '.', '?', '!', ':']
for item in oldlist:
    for add in adds:
        newlist.append(item+add)

或者作为列表理解:

adds = ['', ',', '.', '?', '!', ':']
newlist = [item+add for item in oldlist for add in adds]

作为一个班轮:

newlist = [item+add for item in oldlist for add in ['', ',', '.', '?', '!', ':']]

答案 1 :(得分:1)

一些功能性爱

from itertools import product 

l1 = ['This', 'Hello', 'Good']
l2 = ['', '.', ',', '?', '!', ':']

newlist = ["".join(e) for e in product(l1, l2)]

print newlist