什么是创建列表组合的pythonic方法

use*_*528 0 python

我们假设我有两个列表:

list_one = [1A, 1B]
list_two = [2A]
Run Code Online (Sandbox Code Playgroud)

如何从这两个数组中获取包含单词对的列表?想象:

answer = [1A-2A, 1B-2A]
Run Code Online (Sandbox Code Playgroud)

我知道我可以使用两个for循环来实现它但是有一种'pythonic'方式吗?

Ev.*_*nis 7

你可以简单地使用productitertools.

from itertools import product

list_one = ['1A', '1B']
list_two = ['2A']

result = ['-'.join(sub) for sub in product(list_one, list_two)]
print(result)  # -> ['1A-2A', '1B-2A']
Run Code Online (Sandbox Code Playgroud)

我不认为它比这更像pythonic.


在引擎盖下,product(list_one, list_two)生成形式的元组('1A', '2A'),我们只是'-'.join()为了产生所需的结果.