通过在列表理解中组合两个列表来创建一个列表
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 ]
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 ]