首页 > 编程语言 >python实现数的排列问题​

python实现数的排列问题​

时间:2023-09-06 23:32:09浏览次数:32  
标签:排列 迭代 python permutations 实现 itertools print total

功能需求

有四个数字 1,2,3,4,能够组成多少个互不相同并且无重复的三位数字?各是多少?

程序分析

使用for循环遍历所有可能,将重复的删去,设定一个计数变量total,每完成一次符合要求的组合,

total自加1.

程序实现(一)

使用for循环

#total初始值为0
total = 0
#最外层循环从1开始遍历,直到4
for i in range(1,5):
    for j in range(1,5):
        for k in range(1,5):
#如果i,j,k互不相等,就打印出来
            if (i != j) and (j != k) and (k != i):
                print(i,j,k)
                total+=1
print(total)

python实现数的排列问题​_迭代器



程序实现(二)

在python的itertools模块中,permutations()函数用于生成一个序列的所有可能排列。它接收两个参数,permutations(a,b),a是一个可迭代对象,比如列表、元组等;整数b代表要生成排列的长度。返回值是一个包含所有可能排列的迭代器。

举例:

import itertools
# 定义一个列表
data = [1,2,3,4]
# 生成长度为3的所有排列
result = list(itertools.permutations(data,3))
# 输出结果
print(result)

python实现数的排列问题​_迭代_02

import itertools
a = [1,2,3,4]
sum2 = 0
for i in itertools.permutations(a, 3):
    print(i)
    sum2 += 1
print(sum2)

python实现数的排列问题​_迭代器_03


注意事项

permutations()函数生成的是元组,如果要将其转换成列表或者是其他可迭代对象,可以使用list()函数进行转换;如果输入的可迭代对象为空,或者指定的排列长度

 大于可迭代对象的S长度,permutations()将会返回一个空的迭代器。

permutations()函数生成的是元组,如果要将其转换成列表或者是其他可迭代对象,可以使用list()函数进行转换;如果输入的可迭代对象为空,或者指定的排列长度大于可迭代对象的长度,permutations()将会返回一个空的迭代器。


标签:排列,迭代,python,permutations,实现,itertools,print,total
From: https://blog.51cto.com/u_15928170/7391607

相关文章

  • python-pycharm打印 不换行,清空
    一、参考代码foriinrange(100):time.sleep(0.4)#print(i)print('\r','count:'+str(i),end='---')#这种方式可以避免输出内容刷屏......
  • Python内置函数 - enumerate, range, max, len
    1, enumerate(可迭代对象,index_base)fromcollections.abcimportIteratormy_list=["aa","b","c"]result=enumerate(my_list)#迭代器:每次返回一个元组,tuple(index,value)print(type(result))#<class'enumerate'>prin......
  • 实用Python库
    flatten-json:将object,dict,array压缩成一维一个有趣的用法:fromflatten_jsonimportflattendef__flatten(*args):a=[]foreinargs:iftype(e)==type([])ortype(e)==type(()):a.append(__flatten(*e))eliftype(e......
  • 【python技巧】替换文件中的某几行
    【python技巧】替换文件中的某几行1.背景描述最近在写一个后端项目,主要的操作就是根据用户的前端数据,在后端打开项目中的代码文件,修改对应位置的参数,因为在目前的后端项目中经常使用这个操作,所以简单总结一下。1.文件路径:./test.c2.文件内容……caseEPA:chan_des......
  • 前端实现Base64图片压缩
    背景对接后端或者第三方的时候,后端或第三方要求前端传递base64编码并要求其大小不能大于5KB。参考文章代码具体见https://blog.csdn.net/weixin_42752574/article/details/126061352在线base64转图片https://www.lddgo.net/convert/base64-to-image......
  • 【python技巧】替换文件中的某几行
    (【python技巧】替换文件中的某几行)1.背景描述最近在写一个后端项目,主要的操作就是根据用户的前端数据,在后端打开项目中的代码文件,修改对应位置的参数,因为在目前的后端项目中经常使用这个操作,所以简单总结一下。1.文件路径:./test.c2.文件内容……caseEPA:chan_de......
  • uni-app实现音频播放器(ios)
    在uni-app中,ios有自带的音频播放器,和网易云一样,安卓需要自己写1.全局定义constbgAudioManager=uni.getBackgroundAudioManager();bgAudioManager.title=this.info.name;//音频名称bgAudioManager.singer='';//作者bgAudioManager.coverImgUrl=this.info.pic;/......
  • Java中有哪些方式能实现锁某个变量
    有的时候博客内容会有变动,首发博客是最新的,其他博客地址可能会未同步,认准https://blog.zysicyj.top首发博客地址系列文章地址在Java中,有几种方式可以实现对某个变量的锁定:使用synchronized关键字:synchronized关键字是Java中最常用的实现锁的方式之一。通过在方法或代码块......
  • Android Q实现app开机自启
    开机自启动​ 开机自启,那系统开机成功会发生什么情况,借助某些信息的产生我们可以实现开机自启吗?​ 似乎原理就是这样子的,但是总需要考虑现实情况。现实就是首先这个app是系统app,所以这一步就排除了一大波的app,不过你要问难道不是系统应用就不行了吗,当然Android10以下可以一试......
  • Android Q实现app开机自启
    开机自启动​ 开机自启,那系统开机成功会发生什么情况,借助某些信息的产生我们可以实现开机自启吗?​ 似乎原理就是这样子的,但是总需要考虑现实情况。现实就是首先这个app是系统app,所以这一步就排除了一大波的app,不过你要问难道不是系统应用就不行了吗,当然Android10以下可以一试......