连接两个长度不同的列表中的元素

2024-04-25 22:23:17 发布

您现在位置:Python中文网/ 问答频道 /正文

)我相信这个问题已经在某个地方得到了答案,但我真的找不到正确的问题。也许我不知道这个练习的正确动词?)你知道吗

我有两张单子:

prefix = ['A', 'B', 'C']
suffix = ['a', 'b']

我想得到这个:

output = ['A a', 'A b', 'B a', 'B b', 'C a', 'C b']

我知道zip方法,它在连接的列表中以最短的长度停止:

output_wrong = [p+' '+s for p,s in zip(prefix,suffix)]

那么,做这件事的最邪恶的方式是什么呢?你知道吗

编辑:

虽然大多数答案更倾向于itertools.product,但我更倾向于这样:

output = [i + ' ' + j for i in prefix for j in suffix]

因为它没有引入一个新的包,但是包是基本的(好吧,我不知道哪种方式更快,这可能是个人喜好的问题)。你知道吗


Tags: 方法答案in编辑列表foroutputprefix
3条回答

使用itertools.product和列表理解

>>> [i + ' ' + j for i, j in product(prefix, suffix)]
# ['A a', 'A b', 'B a', 'B b', 'C a', 'C b']

使用^{}

import itertools

prefix = ['A', 'B', 'C']
suffix = ['a', 'b']

print([f'{x} {y}' for x, y in itertools.product(prefix, suffix)])
# ['A a', 'A b', 'B a', 'B b', 'C a', 'C b']

使用列表理解

prefix = ['A', 'B', 'C']
suffix = ['a', 'b']
result = [val+" "+val2 for val in prefix for val2 in suffix ]
print(result)

输出

['A a', 'A b', 'B a', 'B b', 'C a', 'C b']

相关问题 更多 >