我有两个列表,我想使用列表推导来创建列表列表。第一个列表有一些前缀,第二个列表有一些后缀。
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)
但我认为列表理解会提高代码的可读性。
我怎么能做到这一点?
您还可以使用列表理解来实现此目的
[[p+s for s in suffixes] for p in prefixes]
#[['t1_price', 't1_sales'], ['t0_price', 't0_sales']]
使用不需要嵌套理解的生成器的替代方法
from itertools import product
[a+b for (a, b) in product(prefixes, suffixes)]
output = [[x + y表示前缀中的x],后缀为y] print(输出)