Python: "dynamic"列表的所有可能组合

标签 python list iteration permutation combinations

我实在是找不到了。我尝试使用 itertools,尝试了各种循环,但仍然无法实现我想要的。这是我需要的:

我有如下列表:

list = [("car", 2), ("plane", 3), ("bike", 1)]

这个列表每次都不一样,每次可以有 5 个不同的项目,我需要的是得到这样的东西:

car1, plane1, bike1
car1, plane2, bike1
car1, plane3, bike1
car2, plane1, bike1
car2, plane2, bike1
car2, plane3, bike1

我真的迷路了。很明显,这可能很简单,但我无法解决。

最佳答案

你可以使用 itertools.product() :

my_list = [("car", 2), ("plane", 3), ("bike", 1)]
a = itertools.product(*([name + str(i + 1) for i in range(length)] 
                        for name, length in my_list))
for x in a:
    print x

打印

('car1', 'plane1', 'bike1')
('car1', 'plane2', 'bike1')
('car1', 'plane3', 'bike1')
('car2', 'plane1', 'bike1')
('car2', 'plane2', 'bike1')
('car2', 'plane3', 'bike1')

关于Python: "dynamic"列表的所有可能组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7914613/

相关文章:

java - 如何在java中的二维数组中找到元素后计算X次

python - 将 Django 与 Apache、mod-wsgi 和 mod-wsgi_httpd 结合使用

python - Windows Sublime Text,如何使用 Anaconda Python 而不是默认的

c# - .net 框架与 scrapy python

python - 在 Python 中识别列表中的重复值

PHP 5.4 ForEach 疯狂吗?

Python 列出从模块导入的所有子模块

python - 计算并求和所有先前的同类项

c# - 将列表中的多个元素添加到数组

c++ - 如何遍历 C++ 中的无序集?