在Python中创建四个列表的所有可能组合的最高效方法是什么?

5 投票
5 回答
545 浏览
提问于 2025-04-15 20:04

我有四个不同的列表,分别是 headersdescriptionsshort_descriptionsmisc。我想把这些列表组合起来,打印出所有可能的组合方式:

header\n
description\n
short_description\n
misc

比如说,如果我只用 headersdescriptions,而不使用 short_descriptionsmisc,这样做是为了简单明了。

headers = ['Hello there', 'Hi there!']
description = ['I like pie', 'Ho ho ho']
...

我希望打印出来的格式是这样的:

Hello there
I like pie
...

Hello there
Ho ho ho
...

Hi there!
I like pie
...

Hi there!
Ho ho ho
...

你觉得最好的、最简洁的、最有效的方法是什么呢?难道只有用 for 循环嵌套才能实现吗?

5 个回答

3

可以用生成器表达式来实现这个功能:

for h, d in ((h,d) for h in headers for d in description):
    print h
    print d
4

在编程中,有时候我们会遇到一些问题,比如代码运行不正常或者出现错误。这种情况可能是因为我们没有正确理解某些概念或者用法。为了帮助大家更好地解决这些问题,很多人会在网上提问,比如在StackOverflow这个网站上。

在这个网站上,用户可以描述他们遇到的具体问题,其他有经验的人会给出建议和解决方案。这样,大家可以互相学习,提升自己的编程技能。

总之,StackOverflow是一个很好的资源,适合所有想要提高编程能力的人,无论你是新手还是有经验的开发者。

import itertools

headers = ['Hello there', 'Hi there!']
description = ['I like pie', 'Ho ho ho']

for p in itertools.product(headers,description):
    print('\n'.join(p)+'\n')

撰写回答