Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 包含重复元组的Python3置换_Python 3.x_Duplicates_Combinations_Itertools - Fatal编程技术网

Python 3.x 包含重复元组的Python3置换

Python 3.x 包含重复元组的Python3置换,python-3.x,duplicates,combinations,itertools,Python 3.x,Duplicates,Combinations,Itertools,我想创建具有重复元素的元组的所有可能组合 例如,假设我们有{3,3,0}。 我希望代码返回: (3,3,0) (3,0,3) (0,3,3) 我查看了itertools文档和许多堆栈溢出问题,但没有找到答案 我如何实现它?或者,这可以在一般情况下实现吗?您可以从itertools中使用,然后使用集合来删除任何双精度: result = set(permutations((3, 3, 0))) 使用第三方库: >pip安装更多itertools 代码 有关详细信息,请参见。是{3,3,0}您的实

我想创建具有重复元素的元组的所有可能组合

例如,假设我们有{3,3,0}。 我希望代码返回: (3,3,0) (3,0,3) (0,3,3)

我查看了itertools文档和许多堆栈溢出问题,但没有找到答案

我如何实现它?或者,这可以在一般情况下实现吗?

您可以从itertools中使用,然后使用
集合来删除任何双精度:

result = set(permutations((3, 3, 0)))
使用第三方库:

>pip安装更多itertools

代码


有关详细信息,请参见。

{3,3,0}
您的实际符号,它是一个
集吗?
来自sympy.utilities.iterables导入多集置换
例如,
列表(多集置换([3,3,0])
给出了
[0,3,3],[3,0],[3,3,0]
是的,这是一个集,尽管python制作了它{3,0}@BillBell我不想再给这个项目添加一个包,但是谢谢你。请注意,你接受的东西会比较慢。很好!非常感谢。实际上我也找到了另一种方法。我是个巨蟒迷。。。另一种方式是:)你只能接受一种@Mureinik的回答是pythonic和requite可接受的。这个可能快一点。
import more_itertools as mit


iterable = (3, 3, 0)
list(mit.distinct_permutations(iterable))
# [(3, 3, 0), (3, 0, 3), (0, 3, 3)]