在列表理解中应用常量

MLi*_*ter 6 python python-2.7

比方说,我们有一个列表mylist = ['a', 'b', 'c'],我们希望产生另一个列表如下:['a:1', 'a:2', 'b:1', 'b:2', 'c:1', 'c:2'],基本上追加':1'':2'到的每一个元素mylist.

我想知道如果可能的话,如何有效地使用列表理解?

mat*_*ata 6

像这样:

['%s:%d' % (e, i) for e in mylist for i in (1, 2)]
Run Code Online (Sandbox Code Playgroud)


Pet*_*per 5

我认为最有效的方法是itertools.product:

http://docs.python.org/2/library/itertools.html#itertools.product

from itertools import product

mylist = ['a', 'b', 'c']
mysuffixes = [':1', ':2']
result = [x+y for x, y in product(mylist, mysuffixes)]
Run Code Online (Sandbox Code Playgroud)

确切的结构可能会有所不同,具体取决于您的常量的定义方式.