加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

如何计算我可以在python中订购列表的方式有多少

发布时间:2020-12-20 12:11:05 所属栏目:Python 来源:网络整理
导读:我对如何做到这一点有点困惑,我知道它可能也需要一点概率知识(我缺乏). 我如何计算有多少种方式,并且还可以获得我可以订购列表的方式的所有可能性? 例如,如果我有lst = [“a”,“a”,“b”,“b”],我可以订购多少种方式/我怎样才能获得所有可能的组合?我一
我对如何做到这一点有点困惑,我知道它可能也需要一点概率知识(我缺乏).

我如何计算有多少种方式,并且还可以获得我可以订购列表的方式的所有可能性?

例如,如果我有lst = [“a”,“a”,“b”,“b”],我可以订购多少种方式/我怎样才能获得所有可能的组合?我一直在寻找itertools,但没有找到它的东西.

解决方法

您可以使用permutations()来获取所有排列,并使用set()来删除重复项:

>>> from itertools import permutations
>>> set(permutations(lst))
{('b','a','b','b'),('b','a'),('a','a')}
>>>

请注意,他的方法不是一种优化的方法,因为它首先计算所有排列,虽然它返回一个迭代器并且不会将所有排列存储在内存中但是它仍然不是最好的方式,如果你正在处理非大数据集.

如果要使用优化方式,可以自定义排列的等效函数has mentioned in documentation.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读