当前位置: 首页 > 面试题库 >

列表的3位数字的所有可能组合永远都不相同

班景龙
2023-03-14
问题内容

我有一个列表,看起来像:

A
B
C
D
E
F
G

我该如何解决才能找到3位数字的所有组合。不能在同一行中使用相同的字母。

ABC
ABD
ABE
ABF
ABG
AGB

例如:

x = ['a','b','c','d','e']
n = 3
import itertools
aa = [list(comb) for i in range(1, n+2) for comb in itertools.combinations(x, i)]
print(aa)

这不会提供所需的输入:

[['a'], ['b'], ['c'], ['d'], ['e'], ['a', 'b'], ['a', 'c'], ['a', 'd'], ['a', 'e'], ['b', 'c'], ['b', 'd'], ['b', 'e'], ['c'

问题答案:

Python标准库itertools已经具有您要实现的功能。您也可以在代码中使用它(有趣)。

itertools.combinations(a,3)返回a的所有3个组合。要将其转换为“列表列表”,应使用.extend()以下方法;

x = ['a','b','c','d','e']
n = 3
import itertools
permutations = []
combinations = []
combinations.extend(itertools.combinations(x,n))
permutations.extend(itertools.permutations(x,n))

print("Permutations;", permutations)
print("\n")
print("Combinations;", combinations)

另外,建议您搜索“ 组合,排列差异 ”。从您的问题中我了解到;排列就是您想要的。(如果运行我共享的代码,您将容易理解两者之间的区别。)



 类似资料:
  • 问题内容: 我有一个字符数组c [] [],每个索引都有不同的映射。例如: 我需要以字符串形式返回此数组的所有可能字符组合。也就是说,对于上述字符数组,我应该返回:“ ag”,“ ah”,“ ai”,“ bg”,“ bh”,“ bi”,“ cg”,“ ch”,“ ci”等对于上面只有两件事的字符数组,这样做很容易,但是如果有更多的数组,那么我不知道该怎么办…这就是我要大家提供的帮助!:) 问题答案

  • 问题内容: 我有从0到8的数字。我想结果是这些数字的所有可能集合,每个集合都应使用所有数字,每个数字在集合中只能出现一次。 我希望看到用PHP制作的解决方案可以打印出结果。或者,至少,我希望在组合理论上有所收获,因为我早已忘记了它。计算多少排列的公式是什么? 示例集: 0-1-2-3-4-5-6-7-8 0-1-2-3-4-5-6-8-7 0-1-2-3-4-5-8-6-7 0-1-2-3-4-8

  • 问题内容: 在Python中,我有一个n个列表的列表,每个列表具有可变数量的元素。如何创建包含所有可能排列的单个列表: 例如 我想要 注意,我事先不知道n。我以为itertools.product是正确的方法,但它需要我提前知道参数的数量 问题答案: 您不需要事先知道使用

  • 我有以下格式的配子数据: 数据输出: 我需要对它们进行配对和组合,所以我参考一对中的位置得到所有可能的唯一组合。我有另一个数据文件,其中包含对的信息,它们是参考Place配对的。所以在这个文件中,我可以看到Place 19 Place 33是一对,我想要以下结果: 在这种情况下,“唯一”表示A1:A2等于A2:A1。我之所以想这样做,是因为我想对这对字母进行四配子测试,看看是否所有可能的字母组合都

  • 问题内容: 有一个包含15个数字的列表,我需要编写一些代码来生成这些数字的所有32,768个组合。 我已经找到了一些代码(通过Googling),这些代码显然可以满足我的需求,但是我发现代码相当不透明并且对使用它很谨慎。另外我觉得必须有一个更优雅的解决方案。 对我而言,唯一发生的就是循环遍历十进制整数1–32768,并将其转换为二进制,然后使用二进制表示形式作为筛选器来选择适当的数字。 有人知道更

  • 我如何从"CSV示例"创建一个像"最终结果"这样的数组? 背景 我正在构建一个用于测试的实验室文件系统,我想创建一个看起来有点像真实文件系统的文件夹结构。我有几个包含文件夹信息的CSV文件。 我想采用上面的每个组合,创建一个包含以下所有文件夹的文件系统。 一旦我有了上面所有完整路径的数组,就像做一样简单: 问题 我希望能够为任何CSV文件做到这一点,不管我有多少列,头名称是什么,或者每列有多少值。

  • 本文向大家介绍有1、2、3 、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?相关面试题,主要包含被问及有1、2、3 、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?时的应答技巧和注意事项,需要的朋友参考一下 【参考答案】