Python列表理解:对于列表列表,将一个列表中的字符串粘贴到另一个列表中的字符串开头

时间:2017-12-21 14:25:19

标签: python list-comprehension

我有两个列表,我想使用列表推导来创建列表列表。第一个列表有一些前缀,第二个列表有一些后缀。

prefixes = ['t1_', 't0_']
suffixes = ['price', 'sales']

列表理解应该返回

output = [['t1_price', 't1_sales'],
          ['t0_price', 't0_sales']]

我可以使用一对for循环完成此操作:

output = []
for prefix in prefixes:
    pairs = []
    for suffix in suffixes:
        pairs.append(prefix + suffix)
    output.append(pairs)

但我认为列表理解会提高我的代码的可读性。

我该如何做到这一点?

3 个答案:

答案 0 :(得分:3)

您还可以使用列表理解

来实现此目的
[[p+s for s in suffixes] for p in prefixes]
#[['t1_price', 't1_sales'], ['t0_price', 't0_sales']]

答案 1 :(得分:0)

使用不需要嵌套理解的生成器的替代方法

from itertools import product
[a+b for (a, b) in product(prefixes, suffixes)]

答案 2 :(得分:-1)

对于后缀中的y,

output = [[x + y表示前缀中的x]] 打印(输出)