在一行迭代中扩展多个元素

时间:2018-11-12 15:08:28

标签: 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?

非常感谢。

3 个答案:

答案 0 :(得分:9)

使用nested list comprehension

A=[1,2,3]

B = [prefix + str(a) for a in A for prefix in 'rt']

答案 1 :(得分:6)

您可以使用嵌套列表推导。

>>> A=[1,2,3]                                                                                                                            
>>> [fmt.format(n) for n in A for fmt in ('r{}', 't{}')]                                                                                    
['r1', 't1', 'r2', 't2', 'r3', 't3']

答案 2 :(得分:4)

使用<ng-container *ngFor="let items of article_array_keys" class="structure"> <tr *ngFor="let item of items"> <td><h5> {{item.id}} </h5></td> <td><h5> {{item.title}} </h5></td> <td><h5> {{item.body}} </h5></td> <td><h5> {{item.author}} </h5></td> <td><h5> {{item.editor}} </h5></td> <td><h5> {{item.created_at}} </h5></td> </tr> </ng-container>

itertools.product