Python将列表转换为元组列表

5 python list

我想要完成的事情:

[a, b, c, d] -> [ (a, x), (b, x), (c, x), (d, x) ]
Run Code Online (Sandbox Code Playgroud)

到目前为止我所想到的:

done = []

for i in [a, b, c, d]:
   done.append((i, x))
Run Code Online (Sandbox Code Playgroud)

是否有更多的Pythonic方法来实现这一目标?

Mat*_*hen 13

done = [(el, x) for el in [a, b, c, d]]
Run Code Online (Sandbox Code Playgroud)


jam*_*lak 8

运用 itertools.repeat

>>> x = 'apple'
>>> a,b,c,d = 'a','b','c','d'
>>> from itertools import repeat    
>>> zip([a,b,c,d],repeat(x))
[('a', 'apple'), ('b', 'apple'), ('c', 'apple'), ('d', 'apple')]
Run Code Online (Sandbox Code Playgroud)

运用 itertools.product

>>> from itertools import product
>>> list(product([a,b,c,d],[x]))
[('a', 'apple'), ('b', 'apple'), ('c', 'apple'), ('d', 'apple')]
Run Code Online (Sandbox Code Playgroud)


Rob*_*nça 6

另一种实现相同结果的方法:列表理解

done = [(i,x) for i in [a,b,c,d]]
Run Code Online (Sandbox Code Playgroud)