相关疑难解决方法(0)

获取一系列列表的笛卡尔积?

如何从一组列表中获取笛卡尔积(每种可能的值组合)?

输入:

somelists = [
   [1, 2, 3],
   ['a', 'b'],
   [4, 5]
]
Run Code Online (Sandbox Code Playgroud)

期望的输出:

[(1, 'a', 4), (1, 'a', 5), (1, 'b', 4), (1, 'b', 5), (2, 'a', 4), (2, 'a', 5) ...]
Run Code Online (Sandbox Code Playgroud)

python list cartesian-product

289
推荐指数
9
解决办法
18万
查看次数

对列表中的每对元素进行操作

使用Python,我想比较列表中的每个可能的对.

假设我有

my_list = [1,2,3,4]
Run Code Online (Sandbox Code Playgroud)

我想对列表中的2个元素的每个组合进行操作(让我们称之为foo).

最终结果应该是相同的

foo(1,1)
foo(1,2)
...
foo(4,3)
foo(4,4)
Run Code Online (Sandbox Code Playgroud)

我的第一个想法是手动迭代两次列表,但这似乎不是pythonic.

python

80
推荐指数
2
解决办法
5万
查看次数

生成所有可能的三个字母字符串的最佳方法是什么?

我生成所有可能的三个字母关键字e.g. aaa, aab, aac.... zzy, zzz下面是我的代码:

alphabets = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']

keywords = []
for alpha1 in alphabets:
    for alpha2 in alphabets:
        for alpha3 in alphabets:
            keywords.append(alpha1+alpha2+alpha3)
Run Code Online (Sandbox Code Playgroud)

能否以更加流畅有效的方式实现此功能?

python performance

36
推荐指数
3
解决办法
5万
查看次数

Python Brute Force算法

我需要生成从给定字符集到给定范围的所有可能组合.喜欢,

charset=list(map(str,"abcdefghijklmnopqrstuvwxyz"))
range=10
Run Code Online (Sandbox Code Playgroud)

输出应该是,

[a,b,c,d..................,zzzzzzzzzy,zzzzzzzzzz]
Run Code Online (Sandbox Code Playgroud)

我知道我可以使用已经使用过的库来做到这一点.但我需要知道它们是如何工作的.如果有人能用Python或任何可编程语言给我一个这种算法的注释代码,我将非常感激.

python algorithm brute-force

20
推荐指数
3
解决办法
11万
查看次数

Python itertools排列如何包含重复字符

可能重复:
集合python的幂集和笛卡尔积

使用Python Itertools.permutations()我希望接收和输出具有重复字符的排列.举个例子,我的下面的函数和它的当前输出.

def perm(n,i):
    b = 0
    while b < n:
        n= n -1
        from itertools import permutations as p
        file.write('\n'.join([''.join(item) for item in p(i,n)]))
perm(4,'0123')
Run Code Online (Sandbox Code Playgroud)

输出是:

012
013
021
023
031
032
102
103
120
123
130
132
201
203
210
213
230
231
301
302
310
312
320
321.....
Run Code Online (Sandbox Code Playgroud)

我如何获得112或222的输出?

根据我的理解,组合不是特定于排列的特定顺序.我正在寻找的是找到所有组合然后每个组合的每个排列.这可能吗?

python permutation python-itertools

12
推荐指数
2
解决办法
2万
查看次数

python所有可能的长度为0的组合k

我需要所有可能的长度为0的组合.

假设我想要k = 2 (0,0), (0,1), (1,0), (1,1)

我尝试了不同的功能,itertools但我找不到我想要的东西.

>>> list(itertools.combinations_with_replacement([0,1], 2))
[(0, 0), (0, 1), (1, 1)]
>>> list(itertools.product([0,1], [0,1])) #does not work if k>2
[(0, 0), (0, 1), (1, 0), (1, 1)]
Run Code Online (Sandbox Code Playgroud)

python combinations python-itertools

9
推荐指数
1
解决办法
2280
查看次数

两个列表的组合(不是元素)

我有两个清单:

a = ['a', 'b']
b = [1, 2, 3]
Run Code Online (Sandbox Code Playgroud)

我想得到列表b元素和列表a元素之间产生的组合,但是a作为对(或三元组等)处理元素,如下面的例子给出len(b) ** len(a)了组合的数量.

c = ["a_1 b_1", "a_1 b_2", "a_1 b_3", "a_2 b_1", "a_2 b_2", "a_2 b_3", "a_3 b_1", "a_3 b_2" "a_3 b_3"]
Run Code Online (Sandbox Code Playgroud)

我曾尝试使用itertools.product(如描述在这里),但这将只给出6种可能的组合.

python

6
推荐指数
1
解决办法
835
查看次数

与python中的重复组合,其中顺序很重要

来自 python 的文档:https : //docs.python.org/2/library/itertools.html#itertools.combinations

见组合_with_replacement:“#组合_与替换('ABC',2)--> AA AB AC BB BC CC”

我想使用相同的功能,附带生成“BA”、“CA”和“CB”的奖励。

python combinations combinatorics cartesian-product python-itertools

5
推荐指数
1
解决办法
3416
查看次数

生成所有长度为n的True/False排列?

在尝试为真值表生成函数编写代码时出现了这个问题.

如何生成所有length-n排列True和False的列表?换句话说,给定一个元素列表,[True, False]我如何生成这些元素的所有可能长度-n组合的所有排列?

例如:

n=2 长度为2的排列是:

[[True, True], [True, False], [False, True], [False, False]]
Run Code Online (Sandbox Code Playgroud)

n=3 长度为3的排列是:

[[False, False, False],[False,False,True],
[False,True,False],[False,True,True],
[True,False,False],[True,False,True],[True,True,False],[True,True,True]]
Run Code Online (Sandbox Code Playgroud)

我知道这个列表中有2 ^ n个列表.我也考虑过使用itertools.product,但这似乎只是给出了特定组合的排列.在这种情况下,我想我想生成长度为n的真/假列表的所有组合的排列.

python boolean permutation

5
推荐指数
2
解决办法
1062
查看次数

2 个字符的 x 长度的排列

假设我有两个字符:a& b。我想获得所有可能的名单排列a,并b对于给定长度(即5),使用Python 2.7。

我查看了itertools.permutations,但找不到允许我使用 2 个字符来构建超过 2 个字符的排列的方法。

我还查看了 Python 排列的多个 SO 答案,例如this one,但这与其他答案一起只会给出len(input)长度排列。

另外,如果有使用不同编程语言的好方法,请提出建议。我并没有一成不变地为此使用 Python。

python python-2.7

4
推荐指数
1
解决办法
1179
查看次数