通过在列表理解中组合两个列表来创建一个列表

Creating one list by combining two list in a list comprehension

Python 的新手。试图找到答案,但找不到任何东西或理解任何东西。我可以使用 for 循环,但我正在尝试通过列表理解将两个列表合并为一个。我对列表理解相当陌生。所以像:

list1 = ['a','b','c']
list2 = ['p','q','r','s','t','u']

我想要这样的输出:

list3 = ['ap','aq','ar','as','at','au','bp','bq','br','bs','bt','bu','cp','cq','cr','cs','ct','cu'...]

我没有写完整的东西,但我希望它能说明问题。我怎样才能仅基于列表理解来做到这一点?

您可以使用 itertools.product() 生成所需的输出:

from itertools import product

[''.join(item) for item in product(list1, list2)]

这输出:

['ap', 'aq', 'ar', 'as', 'at', 'au', 'bp', 'bq', 'br', 'bs', 'bt', 'bu', 'cp', 'cq', 'cr', 'cs', 'ct', 'cu']

比在单个列表理解中使用多个 for 子句的答案更喜欢这个答案:some 认为它是糟糕的风格。

你可以试试

list1 = ['a','b','c']
list2 = ['p','q','r','s','t','u']

result = [ a+b for a in list1 for b in list2 ]