具有所有子列表变体的单个列表的 Pythonic 方式

标签 python combinatorics

我确信这个简单的问题有答案,但我真的不知道如何用英语表达它(惭愧),所以决定问问人类。

假设我有一个列表列表:

[['Sometimes'], [' '], ['I'], [' '], ['love', 'hate'], [' '], ['pizza', 'coke']]

获得以下输出的最 pythonic 方法是什么?

['Sometimes I love pizza', 'Sometimes I love coke', 'Sometimes I hate pizza', 'Sometimes I hate coke']

最佳答案

from itertools import product

options = [['Sometimes'],[' '],['I'],[' '],['love','hate'],[' '],['pizza','coke']]

for combo in product(*options):
    print("".join(combo))

给予

Sometimes I love pizza
Sometimes I love coke
Sometimes I hate pizza
Sometimes I hate coke

关于具有所有子列表变体的单个列表的 Pythonic 方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27881337/

相关文章:

python - 一次将多列上的 Pandas 日期时间从 Unix 纪元时间转换为东部时间

Python 计数器,用于计算输出中列出的最常见字符串

algorithm - 列出条目总和为 n 的所有 k 元组,忽略旋转

algorithm - 计算组合

javascript - 纸牌游戏手牌评估的组合学,带通配符和重复

c# - 如何阻止 Spyne 将参数包装在复杂类型中?

Python:为什么 __getattr__ 会捕获 AttributeErrors?

c++ - 从整数 vector 生成大小为 k 的下一个组合

python - 具有最小分数的作业

python - 在 Python 中解析 .properties 文件