Python 在一行迭代中扩展多个元素
为了Python 在一行迭代中扩展多个元素,python,list,loops,iteration,Python,List,Loops,Iteration,为了 A=[1,2,3] 我想去 B=['r1','t1','r2','t2','r3','t3'] 我知道通过以下方式很容易获得['r1'、'r2'、'r3'] ['r'+str(k)表示A中的k] 我怎样才能通过一行循环得到B,正如我上面展示的那样 非常感谢。请使用: 可以使用嵌套列表 >>> A=[1,2,3]
A=[1,2,3]
我想去
B=['r1','t1','r2','t2','r3','t3']
我知道通过以下方式很容易获得['r1'、'r2'、'r3']
['r'+str(k)表示A中的k]
我怎样才能通过一行循环得到B,正如我上面展示的那样
非常感谢。请使用:
可以使用嵌套列表
>>> 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)
,但除此之外,很好地利用itertoolsIs有一些人在这里对所有答案投了反对票?你最好留下一张支票reason@Woody1193谢谢你,这看起来像是一行中的两个循环!它起作用了!谢谢!我最喜欢这个答案!太清楚了!非常感谢你!
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']