美文网首页
【基础】Python3小程序_之排列组合

【基础】Python3小程序_之排列组合

作者: Alyna_C | 来源:发表于2021-04-05 00:33 被阅读0次

    题目——

    有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?具体有哪些数字


    程序——

    方法一:for循环+集合去重复项

    num = [1, 2, 3, 4]

    res = []

    for iinnum:

        for j innum:

            for k innum:

                if len(set((i, j, k))) == 3: #使用set()集合去重复项

                    res.append(i *100 + j * 10+ k)

    print(f'组成{len(res)}个互不相同且无重复数字的三位数')

    print('组成的三位数为:')

    for iinres:

        print(i)

    方法二:内置函数itertools

    fromitertools importpermutations

    numstr = '1234'

    res = []

    foritem inpermutations(numstr, 3):

        temp =''

        for i initem:

            temp += i

        res.append(int(temp))

    print(f'组成{len(res)}个互不相同且无重复数字的三位数')

    print('组成的三位数为:')

    for ninres:

        print(n)


    延伸:itertools模块

    排列组合迭代器:

    itertools.product <p,q…[repeat=l]>笛卡尔积,相当于嵌套的for

    itertools.permutation <p[,r]>长度为r元组,所有可能得排列,无重复元素

    itertools.combination <p,r> 长度r元组,有序,无重复元素

    itertools.combinaton_with_replacement <p,r> 长度人员组,有序,元素可重复

    举例

    模块其他函数:https://docs.python.org/zh-cn/3.7/library/itertools.html

            https://blog.csdn.net/weixin_41084236/article/details/81626968

    相关文章

      网友评论

          本文标题:【基础】Python3小程序_之排列组合

          本文链接:https://www.haomeiwen.com/subject/cauahltx.html