相关疑难解决方法(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万
查看次数

如何获取一组的所有子集?(幂)

给定一套

{0, 1, 2, 3}
Run Code Online (Sandbox Code Playgroud)

生成子集的好方法是什么:

[set(),
 {0},
 {1},
 {2},
 {3},
 {0, 1},
 {0, 2},
 {0, 3},
 {1, 2},
 {1, 3},
 {2, 3},
 {0, 1, 2},
 {0, 1, 3},
 {0, 2, 3},
 {1, 2, 3},
 {0, 1, 2, 3}]
Run Code Online (Sandbox Code Playgroud)

python set powerset

65
推荐指数
11
解决办法
6万
查看次数

制作列表的所有可能组合

我需要能够创建一个包含输入列表的所有可能组合的列表.例如,列表[1,2,3]应该返回[1 [1,2] [1,3] 2 [2,3] 3 [1,2,3]] 列表不必具有任何特定顺序.在这个网站上我发现了很多使用它的函数,itertools但是当我只需要一个函数时它们就会返回对象list.

python combinations list

44
推荐指数
6
解决办法
7万
查看次数

从python列表中获取元素的唯一组合

编辑:这不是如何获得列表元素的所有可能组合的完全重复

本主题是关于查找唯一组合,而另一个主题是关于查找所有组合.

如果我有一个python列表:

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

什么是获得列表中3个元素的所有可能独特组合的最佳方式,如下所示:

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

组合中元素的顺序无关紧要.例如,"1,2,3""3,2,1"将被认为是相同的组合.

我可以写一些循环来做到这一点,但我认为可能有一个单行可以做同样的事情.

python combinations list

32
推荐指数
1
解决办法
3万
查看次数

在Python中设置分区

我有一个数组 [1,2,3]

我想使用数组的所有元素进行所有可能的组合:

结果:

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

python arrays combinatorics

32
推荐指数
3
解决办法
1万
查看次数

在Python中获取字符串及其子字符串的所有组合

我已经看到很多关于获取所有可能的子串(即,相邻的字符集)的问题,但没有关于生成所有可能的字符串,包括其子串的组合.

例如,让:

x = 'abc'
Run Code Online (Sandbox Code Playgroud)

我希望输出类似于:

['abc', 'ab', 'ac', 'bc', 'a', 'b', 'c']
Run Code Online (Sandbox Code Playgroud)

重点是我们可以删除原始字符串中不相邻的多个字符(以及相邻的字符).

这是我到目前为止所尝试的:

def return_substrings(input_string):
    length = len(input_string)
    return [input_string[i:j + 1] for i in range(length) for j in range(i, length)]

print(return_substrings('abc'))
Run Code Online (Sandbox Code Playgroud)

但是,这只会从原始字符串中删除相邻字符串集,并且不会返回'ac'上面示例中的元素.

另一个例子是,如果我们使用字符串'abcde',输出列表应该包括的内容'ace','bd'等等.

python string

14
推荐指数
2
解决办法
5778
查看次数

如何在python中获取长度为n的所有组合

我想知道是否有任何方法可以n从数字列表中获取所有长度组合.

例如,如果我的列表是[1, 2, 3, 4],我想输出(如果我选择n = 3)

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

像[2,1,3]这样的其他排列对我没用.

python combinations

11
推荐指数
2
解决办法
8344
查看次数

如何使用熊猫获取包括每个组合在内的数量

我试图弄清楚哪些服装客户一起购买。我可以找出确切的组合,但是我不知道的问题是包含组合+其他的计数。

例如,我有:

Cust_num  Item    Rev
Cust1     Shirt1  $40
Cust1     Shirt2  $40
Cust1     Shorts1 $40
Cust2     Shirt1  $40
Cust2     Shorts1 $40
Run Code Online (Sandbox Code Playgroud)

这应导致:

Combo                  Count
Shirt1,Shirt2,Shorts1    1
Shirt1,Shorts1           2
Run Code Online (Sandbox Code Playgroud)

我能做的最好的就是独特的组合:

Combo                 Count
Shirt1,Shirt2,Shorts1   1
Shirt1,Shorts1          1
Run Code Online (Sandbox Code Playgroud)

我试过了:

df = df.pivot(index='Cust_num',columns='Item').sum()
df[df.notnull()] = "x"
df = df.loc[:,"Shirt1":].replace("x", pd.Series(df.columns, df.columns))
col = df.stack().groupby(level=0).apply(','.join)
df2 = pd.DataFrame(col)
df2.groupby([0]).size().reset_index(name='counts')
Run Code Online (Sandbox Code Playgroud)

但这仅仅是独特的计数。

python pandas

11
推荐指数
1
解决办法
655
查看次数

列出长度为n的列表的所有组合(Python)

执行以下操作的有效算法是什么:给定列表,我们必须输出长度为n的所有元素组合.假设x = ['a','b','c','d','e']和n = 2.输出应为:

[['a'], ['b'], ['c'], ['d'], ['e'], ['a', 'b'], ['a', 'c'], ['a', 'd'], ['a', 'e'], ['b', 'c'], ['b', 'd'], ['b', 'e'], ['c', 'd'], ['c', 'e'], ['d', 'e']]
Run Code Online (Sandbox Code Playgroud)

python list

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

从令牌列表生成所有可能的字符串

我有一个令牌列表,如:

hel
lo
bye
Run Code Online (Sandbox Code Playgroud)

我想生成这些字符串的所有可能组合,例如:

hello
lohel
helbye
byehel
lobye
byelo
Run Code Online (Sandbox Code Playgroud)

语言不重要,有什么建议吗?

我发现使用bash生成排列,但这会在一行上进行排列.

python language-agnostic bash

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