对python排列有问题吗

2024-05-16 10:50:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我对排列有点问题!我是一个真正的大noob当谈到Python,所以任何帮助将不胜感激!你知道吗

假设我在一个文本文件中有一个从1到6的列表,例如 它看起来像(1,2,3,4,5,6)我想打开said.txt文件并计算这6个数字中N的所有可能组合,直到N=4。你知道吗

当我使用itertools排列时

import itertools
x = [1, 2, 3, 4, 5, 6]
[p for p in itertools.product(x, repeat=2)]
[(1, 1), (1, 2), (1, 3), (1, 4), (1, 5), (1, 6), (2, 1), (2, 
2), (2, 3), 
(2, 4), (2, 5), (2, 6), (3, 1), (3, 2), (3, 3), (3, 4), (3, 
5), (3, 6), 
(4, 1), (4, 2), (4, 3), (4, 4), (4, 5), (4, 6), (5, 1), (5, 
2), (5, 3), 
 (5, 4), (5, 5), (5, 6), (6, 1), (6, 2), (6, 3), (6, 4), (6,5), 
(6, 6)]

它输出这样的数字,我并不想要,因为我一次只能得到一个数字的所有组合-但是我想要N个数字的所有可能组合,N的范围从1到4,包括重复,例如:

(1,1), (1,1,1) (1,1,1,1), (1,1,1,1) 

所以我希望它有重复,有不同成员数的组合,但是不能超过4个数字的组合。我真的在为这个概念挣扎!如果有什么不合理的话,请尽管问我:)


Tags: 文件inimporttxt概念列表for数字
1条回答
网友
1楼 · 发布于 2024-05-16 10:50:34
from itertools import product

LIMIT = 4
l1 = [1,2,3]

results = []

for i in range(1, LIMIT+1):
    results.extend(product(l1, repeat=i))

print(results)

将产生:

[(1,), (2,), (3,), 
(1, 1), (1, 2), (1, 3), 
(2, 1), (2, 2), (2, 3), 
(3, 1), (3, 2), (3, 3), 
(1, 1, 1), (1, 1, 2), (1, 1, 3), 
(1, 2, 1), (1, 2, 2), (1, 2, 3), 
(1, 3, 1), (1, 3, 2), (1, 3, 3), 
(2, 1, 1), (2, 1, 2), (2, 1, 3), 
(2, 2, 1), (2, 2, 2), (2, 2, 3), 
(2, 3, 1), (2, 3, 2), (2, 3, 3), 
(3, 1, 1), (3, 1, 2), (3, 1, 3), 
(3, 2, 1), (3, 2, 2), (3, 2, 3), 
(3, 3, 1), (3, 3, 2), (3, 3, 3), 
(1, 1, 1, 1), (1, 1, 1, 2), (1, 1, 1, 3), 
(1, 1, 2, 1), (1, 1, 2, 2), (1, 1, 2, 3), 
(1, 1, 3, 1), (1, 1, 3, 2), (1, 1, 3, 3), 
(1, 2, 1, 1), (1, 2, 1, 2), (1, 2, 1, 3), 
(1, 2, 2, 1), (1, 2, 2, 2), (1, 2, 2, 3), 
(1, 2, 3, 1), (1, 2, 3, 2), (1, 2, 3, 3), 
(1, 3, 1, 1), (1, 3, 1, 2), (1, 3, 1, 3), 
(1, 3, 2, 1), (1, 3, 2, 2), (1, 3, 2, 3), 
(1, 3, 3, 1), (1, 3, 3, 2), (1, 3, 3, 3), 
(2, 1, 1, 1), (2, 1, 1, 2), (2, 1, 1, 3), 
(2, 1, 2, 1), (2, 1, 2, 2), (2, 1, 2, 3), 
(2, 1, 3, 1), (2, 1, 3, 2), (2, 1, 3, 3), 
(2, 2, 1, 1), (2, 2, 1, 2), (2, 2, 1, 3), 
(2, 2, 2, 1), (2, 2, 2, 2), (2, 2, 2, 3), 
(2, 2, 3, 1), (2, 2, 3, 2), (2, 2, 3, 3),
(2, 3, 1, 1), (2, 3, 1, 2), (2, 3, 1, 3), 
(2, 3, 2, 1), (2, 3, 2, 2), (2, 3, 2, 3), 
(2, 3, 3, 1), (2, 3, 3, 2), (2, 3, 3, 3), 
(3, 1, 1, 1), (3, 1, 1, 2), (3, 1, 1, 3), 
(3, 1, 2, 1), (3, 1, 2, 2), (3, 1, 2, 3), 
(3, 1, 3, 1), (3, 1, 3, 2), (3, 1, 3, 3), 
(3, 2, 1, 1), (3, 2, 1, 2), (3, 2, 1, 3), 
(3, 2, 2, 1), (3, 2, 2, 2), (3, 2, 2, 3), 
(3, 2, 3, 1), (3, 2, 3, 2), (3, 2, 3, 3), 
(3, 3, 1, 1), (3, 3, 1, 2), (3, 3, 1, 3), 
(3, 3, 2, 1), (3, 3, 2, 2), (3, 3, 2, 3), 
(3, 3, 3, 1), (3, 3, 3, 2), (3, 3, 3, 3)]

相关问题 更多 >