创建所有可能的三元组的多维数组
Create multidimensional array of all possible triplets
我有一个包含加密符号列表的数组,例如。 (因为有一千多个)
symbols = ['agve', 'age', 'ageur', 'agfi']
我需要创建一个多维数组,其中包含这些的所有可能组合,例如。
combinations = [
["agve", "age", "ageur"],
["agve", "age", "agfi"],
["age", "ageur", "agfi"],
...
生成的数组不应有重复排列,例如 ["agve", "age", "ageur"]
、["agve", "ageur", "age"]
老实说,我什至不知道从哪里开始。我能得到的最接近的是建立一个
包含一些对的数组(然后,不写了,目标是逐渐搜索并添加缺失的组合):
array_length = len(symbols)
combinations = []
current = 0
for i in range(array_length-3):
combinations.append([symbols[current], symbols[current+1], symbols[current+2]])
current += 1
如有任何帮助,我们将不胜感激。我项目的其余部分是用 Python 3.8.
编写的
这会占用很多内存,你能一次考虑每个三胞胎吗?无论哪种方式,最简单的方法可能是 itertools.combinations.
from itertools import combinations
# Consider each individually
for triplet in combinations(symbols, 3):
#DO SOMETHING
pass
# Create the multidimentional array as you wanted
triplets = list(combinations(symbols, 3))
我有一个包含加密符号列表的数组,例如。 (因为有一千多个)
symbols = ['agve', 'age', 'ageur', 'agfi']
我需要创建一个多维数组,其中包含这些的所有可能组合,例如。
combinations = [
["agve", "age", "ageur"],
["agve", "age", "agfi"],
["age", "ageur", "agfi"],
...
生成的数组不应有重复排列,例如 ["agve", "age", "ageur"]
、["agve", "ageur", "age"]
老实说,我什至不知道从哪里开始。我能得到的最接近的是建立一个 包含一些对的数组(然后,不写了,目标是逐渐搜索并添加缺失的组合):
array_length = len(symbols)
combinations = []
current = 0
for i in range(array_length-3):
combinations.append([symbols[current], symbols[current+1], symbols[current+2]])
current += 1
如有任何帮助,我们将不胜感激。我项目的其余部分是用 Python 3.8.
编写的这会占用很多内存,你能一次考虑每个三胞胎吗?无论哪种方式,最简单的方法可能是 itertools.combinations.
from itertools import combinations
# Consider each individually
for triplet in combinations(symbols, 3):
#DO SOMETHING
pass
# Create the multidimentional array as you wanted
triplets = list(combinations(symbols, 3))