list - 获取两个列表元素的所有可能组合的元组列表的 Pythonic 方法是什么?

标签 list python

<分区>

假设我有两个不同大小的列表

a = [1, 2, 3]
b = ['a', 'b']

什么是 Pythonic 方法来获取 a 中的一个元素和 b 中的一个元素的所有可能组合的元组列表 c >?

>>> print c
[(1, 'a'), (1, 'b'), (2, 'a'), (2, 'b'), (3, 'a'), (3, 'b')]

c 中元素的顺序无关紧要。

带有两个 for 循环的解决方案很简单,但它看起来并不是特别 Pythonic。

最佳答案

使用列表理解:

>>> a = [1, 2, 3]
>>> b = ['a', 'b']
>>> c = [(x,y) for x in a for y in b]
>>> print c
[(1, 'a'), (1, 'b'), (2, 'a'), (2, 'b'), (3, 'a'), (3, 'b')]

关于list - 获取两个列表元素的所有可能组合的元组列表的 Pythonic 方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2454626/

相关文章:

asp.net - 应用 "coercion operator "时出错

python - 函数的属性如何能够在包装中幸存下来?

python - 如何在 Django Mako 模板中显示 $ {'None' }?

python - 从 Docker 启动 uwsgi

.NET - 对单个列表(T)的多线程迭代 - 我需要注意什么?

list - 在 Scala : What do I actually get? 中创建列表和集合

python - 追加到字典中的列表

nhibernate - 如何在 NHibernate 中使用不可为空的索引创建列表集合?

python - Pandas 聚合数据框只返回一列

python - 根据给定的输入集实现 n 叉树