【发布时间】:2019-04-15 08:08:44
【问题描述】:
对于
A=[1,2,3]
我想得到
B=['r1','t1','r2','t2','r3','t3']
我知道很容易得到['r1','r2','r3']
['r'+str(k) for k in A]
如上所示,如何通过一行循环获得 B?
非常感谢。
【问题讨论】:
标签: python list loops iteration
对于
A=[1,2,3]
我想得到
B=['r1','t1','r2','t2','r3','t3']
我知道很容易得到['r1','r2','r3']
['r'+str(k) for k in A]
如上所示,如何通过一行循环获得 B?
非常感谢。
【问题讨论】:
标签: python list loops iteration
A=[1,2,3]
B = [prefix + str(a) for a in A for prefix in 'rt']
【讨论】:
您可以使用嵌套列表推导。
>>> A=[1,2,3]
>>> [fmt.format(n) for n in A for fmt in ('r{}', 't{}')]
['r1', 't1', 'r2', 't2', 'r3', 't3']
【讨论】:
使用itertools.product
import itertools
list(itertools.product(*[[1,2,3],['r','t']]))
Out[20]: [(1, 'r'), (1, 't'), (2, 'r'), (2, 't'), (3, 'r'), (3, 't')]
[y +str(x) for x, y in list(itertools.product(*[[1, 2, 3], ['r', 't']]))]
Out[22]: ['r1', 't1', 'r2', 't2', 'r3', 't3']
【讨论】:
y + str(x) 但除此之外,好好利用itertools