我有两个列表,我想使用列表推导来创建列表列表。第一个列表有一些前缀,第二个列表有一些后缀。
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)
但我认为列表理解会提高我的代码的可读性。
我该如何做到这一点?
答案 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)
output = [[x + y表示前缀中的x]] 打印(输出)