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

标签 python list concatenation

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

我有两个列表:

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)]

那么最符合 Pythonic 的方法是什么?

编辑:

虽然大多数答案更喜欢 itertools.product,但我更喜欢这个:

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

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

最佳答案

使用列表理解

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']

关于python - 连接两个长度不同的列表中的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51060477/

相关文章:

python - 递归构建分层 JSON 树?

Python-如何在两列中整齐地打印并行列表/数组......?

c# - 在 List<Dictionary<string, object>> 中搜索一个值

python - 连接并删除 numpy 数组中的重复元素

r - 通过给定的值分布创建向量

php - 难以在 HTML 表单下拉菜单中从 DB 联系的两个字符串之间添加空格

python - 迭代 for 循环并应用 np.union1d

python - 在 genfromtxt 中使用转换器函数失败

python - 在 Windows 上使用 pip install MySQL-python 安装 MySQL 不起作用?

c# - 将自定义类添加到列表时遇到问题 (C#)