看见这个问题时,我们很容易想到我们学习过的排列组合知识点;显然用四个数字组成四位数(这些四位数互不相同)就是一个关于排列的问题;用数学的方法可以知道。那么怎么用Python运行解决呢?这就是本次学习日记的内容。

1、用的Python中的内置函数解决

permutations(li,n)函数,其中li可以是列表或元组;该内置函数就是Python中的全排列函数,表示从li中的元素中选取n个元素进行全排列。实例如下:

import itertools
li=[3,5,8,9]
for x in itertools.permutations(li,4): #利用for 函数遍历全排列得到的元组print('打印全排列出来的元组:', x) 

运行结果如下:

map(function,li)函数表示对列表或元组li中的元素进行function函数操作(一般而言这样可以避免编写复杂的代码用来对 列表或元组中的元素进行操作,map()函数可以整体进行操作),其中function一般就是要进行的操作函数。

利用这两个内置函数就可以简单实现由四个数字全排列得到的所有四位数了,代码如下:

import itertools #导入itertools库
li=[3,5,8,9] #给定任意四个数字,比如3,5,8,9
rl=[int(''.join(map(str,x))) for x in itertools.permutations(li,4)]
#itertools.permutations(li,4)表示从列表li中任意取出四个数字任意组合,最终各组合数在rl中以列表形式给出
print(rl)
print('全排列数个数=', len(rl))

运行结果如下:

2、构建for 嵌套循环来解决

该种方法要构造较为复杂的循环体,相比较于第一种要复杂一些,但但对于新手更友好一点(个人觉得);代码如下:

import numpy as np #导入一定的库
li=[3,5,8,9] #给定四个任意数字,如3,5,8,9
m=[] #构建列表m
for i in range(0,4):for j in range(0,4):for k in range(0,4):for l in range(0,4):if (i!=j) and (i!=k) and (i!=l) and (j!=k) and (j!=l) and (k!=l):m+=[int(str(li[i])+str(li[j])+str(li[k])+str(li[l]))] #将四个数字任意组合,并化为列表形式
print(m)
print('全排列数个数 =', len(m) )                  

运行结果如下:

当然构造循环也还有其他一些方法,暂时就未罗列出。喜欢的点个赞哦,谢谢!

Python学习日记:求解由四个数字组成的四位数个数相关推荐

  1. Python学习日记——罗马数字转整数

    Python学习日记004--罗马数字转整数 题目来源:LeetCode题库--罗马数字转整数 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M. 字符 数值 I 1 V 5 X 10 ...

  2. python学习日记(第一周)

    python学习日记(第一周) 前言: 无论出于什么目的,学个程序语言吧.之前学过一点点基础语法,然后就搁置了两年,日记仅作为个人记录,有问题还望不吝赐教 其实这玩意儿应该每次学一部分记录一部分的,好 ...

  3. 菜菜的Python学习日记 | 正则表达式你必须了解的知识点

    系列索引:菜菜的Python学习日记 | Python从入门到入土详解 文章目录 常用规则 Python对正则表达式的支持 常用规则 符号 解释 示例 说明 . 匹配任意字符 b.t 可以匹配bat ...

  4. python学习日记2-3周

    python学习日记2-3周 怠惰怠惰 improt 导入 import phone.apple.iphone6 import phone.apple.iphone7 import phone.sam ...

  5. Python学习日记-day1基础篇 字符 输出 注释

    Python学习日记-day1基础篇 字符 输出 注释 by北栀一刺 # -*- coding: utf-8 -*- """ Spyder EditorThis is a ...

  6. Python学习日记-pandas操作学习

    Python学习日记-pandas模块学习 根据需求筛选数据 绘制柱状图-利用pandas绘制 绘制柱状图-利用matplotlib绘制 绘制柱状图-两组数据比较 绘制柱状图-叠加柱状图 绘制饼状图 ...

  7. 菜菜的Python学习日记 | Python类实验代码分享

    系列索引:菜菜的Python学习日记 | Python从入门到入土详解 Python类实验代码分享 编写程序,实现以下功能. (1)创建员工类Employee,属性有姓名name.能力值ability ...

  8. [Python学习日记] 文件与文件系统(一)

    [Python学习日记] 文件与文件系统(一) 目录 Python3 File(文件) 方法 open() 方法 file 对象 目录 Python3 File(文件) 方法 open() 方法 Py ...

  9. python输出由1、2、3、4、5、6这四个数字组成的每位数都不相同的所有四位数以及总个数

    问题描述 编写程序,输出由1.2.3.4.5.6这四个数字组成的每位数都不相同的所有四位数以及总个数. 实现代码 x=set() for i in range(1,7):for j in range( ...

最新文章

  1. php+管道+pipe管道,C++ 匿名管道执行DOS命令
  2. 练习2-14 求奇数分之一序列前N项和 (15 分)
  3. 【机器学习基础】数学推导+纯Python实现机器学习算法10:线性不可分支持向量机...
  4. h5微信本地调试 vue_Vue 移动端微信内H5调起支付(利用js sdk)
  5. java伪装反序列化字节流_java对象序列化流和反序列化流
  6. 常用JavaScript函数 71 -(自我总结)
  7. x86 32位oracle,X86 32位和64位的区别
  8. VoLTE技术中的会话持续性-eSRVCC
  9. 批标准化 tf.keras.layers.BatchNormalization 参数解析与应用分析
  10. 快速导入十亿数据到hugegraph图数据库
  11. IP地址归属地和手机号码归属地批量查询(单次支持500个以内,支持结果导出xls)
  12. 工程力学和计算机专业,工程力学本科专业介绍
  13. poi导出excel时设置单元格为数字类型(解决:导出Excel时为文本类型选中一整列不能求和问题)
  14. 行为识别:行人跌倒检测(含源码)
  15. 初识智遥工作流软件——表单开发篇1
  16. 酷炫cmd命令行工具——windows terminal的详细配置
  17. 2021年团体程序设计天梯赛-总决赛 L3-2 还原文件
  18. 哪个版本的linux适合个人主机,2020年适合个人使用的Linux发行版推荐TOP5
  19. include指令包含网站banner和版权信息栏
  20. apple pay

热门文章

  1. 创赛入门常见30问解答,或许有你想知道的
  2. 天猫店群是什么意思?天猫店群真赚钱吗?揭秘传言月入十万真假?
  3. 数学建模实战——茂名市科技创新和科技金融评价模型
  4. JavaScript数组方法学习(一):数组元素的增加和删除
  5. 渲染18——实时GI
  6. 使用混合云和私有云所具备的优势有哪些
  7. Mac 上文件名相同、大小写不同的文件夹会合并成一个所导致的问题
  8. Finding Tenuous Groups in Social Networks - 2018
  9. 电脑5个神操作,带你飞的节奏。
  10. krpano切换皮肤样式