python编程100例读出四位数-Python生成0-9任意4位数字组合的方法-程序员宅基地

玩蛇网本文是关于Python生成0-9任意4位数字组合的方法示例。0-9个数字组成任意4位数字,有多少种排列组合的方式,要是用想的需要不少时间而且还容易出错。用python方法来解决这个问题显然简单得多。只需要一段代码,就可以轻松解决。Python生成四位不重复数字(0-9)的所有组合,要如何操作请往下看。

Python生成0-9任意4位数字组合的方法,Python源代码示例如下:(供参考)

def init_set8(r10=range(10)):

"""

把循环内的range函数提到外面

times5.486 ==> 4.427

"""

ret = []

for i in r10:

for j in r10:

for k in r10:

for l in r10:

if i != j and i != k and i != l and j != k and j != l and k != l:

ret.append((i, j, k, l))

return ret

timing(init_set8, 1000)

def init_set9(r10=range(10)):

"""

for 循环改成列表推导

times5.486 ==>3.773

"""

return [(i, j, k, l)

for i in r10

for j in r10

for k in r10

for l in r10

if ( i != j and i != k and i != l and j != k and j != l and k != l) ]

timing(init_set9, 1000)

def init_set10(r10=range(10)):

return ((i, j, k, l)

for i in r10

for j in r10

for k in r10

for l in r10

if( i != j and i != k and i != l and j != k and j != l and k != l) )

timing(init_set10, 1000)

def init_set11():

"""

用代码的空间代价换取计算P4_4的时间

init_set11 1000 times 7.268 OMG

reduce(lambda x,y:x+y,l)太慢了

"""

c10_4=[( i, j, k, l ) for i in xrange(0, 10)

for j in xrange(i+1, 10)

for k in xrange(j+1, 10)

for l in xrange(k+1, 10) ]

ret=reduce(lambda x,y:x+y,

[ [ (i, j, k, l),

(i, j, l, k),

(i, k, j, l),

(i, k, l, j),

(i, l, j, k),

(i, l, k, j),

(j, i, k, l),

(j, i, l, k),

(j, k, i, l),

(j, k, l, i),

(j, l, i, k),

(j, l, k, i),

(k, i, j, l),

(k, i, l, j),

(k, j, i, l),

(k, j, l, i),

(k, l, i, j),

(k, l, j, i),

(l, i, j, k),

(l, i, k, j),

(l, j, i, k),

(l, j, k, i),

(l, k, i, j),

(l, k, j, i),]

for i, j, k, l in c10_4 ],

)

return ret

def init_set12():

"""

generator是伟大的发明,数据流编程万岁

init_set12 1000 times 1.758

www.iplaypy.com

"""

c10_4=(( i, j, k, l ) for i in xrange(0, 10)

for j in xrange(i+1, 10)

for k in xrange(j+1, 10)

for l in xrange(k+1, 10) )

from itertools import chain

ret=chain(

*( ( (i, j, k, l),

(i, j, l, k),

(i, k, j, l),

(i, k, l, j),

(i, l, j, k),

(i, l, k, j),

(j, i, k, l),

(j, i, l, k),

(j, k, i, l),

(j, k, l, i),

(j, l, i, k),

(j, l, k, i),

(k, i, j, l),

(k, i, l, j),

(k, j, i, l),

(k, j, l, i),

(k, l, i, j),

(k, l, j, i),

(l, i, j, k),

(l, i, k, j),

(l, j, i, k),

(l, j, k, i),

(l, k, i, j),

(l, k, j, i),)

for i, j, k, l in c10_4 )

)

return list(ret)

timing(init_set12, 1000)

玩蛇网文章,转载请注明出处和文章网址:https://www.iplaypy.com/code/algorithm/a2589.html

相关文章 Recommend

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_37988176/article/details/109371862

智能推荐

2.【hadoop集群搭建】安装JDK和hadoop (rz上传命令安装)_[root@master ~]# tar -zxvf /root/opt/jdk-8u212-lin-程序员宅基地

文章浏览阅读2.3k次。1.文件上传到虚拟机的准备(1)安装FTP,连接虚拟机IP,上传包(推荐)(2)rz命令,XShell或CRT执行下载命令安装rz,便于往分布式文件系统上传安装包。yum install -y lrzsz2.安装依赖包glibcyum install glibc.i6863.创建文件夹并进入mkdir /hadoopcd /hadoop4.上传JDK安装包rz或FTP连接虚拟机..._[root@master ~]# tar -zxvf /root/opt/jdk-8u212-linux-x64.tar.gz tar (child):

c++头文件大全-程序员宅基地

文章浏览阅读10w+次,点赞111次,收藏685次。C/C++头文件一览C、传统 C++#include    //设定插入点#include      //字符处理#include      //定义错误码#include      //浮点数处理#include    //文件输入/输出#include    //参数化输入/输出#include   //数据流输入/输出#include    //定义各种数_c++头文件

[CountDownLatch] 1.实现等待TcpServer启动完毕后再发射事件 2.使用CompletableFuture代替CountDownLatch将阻塞封装到内部-程序员宅基地

文章浏览阅读284次。也不能说:直接就启动一个线程,不然没办法发射出“服务器启动”这个事件。有时候,我们希望NettyServer启动时不能说卡主主线程。这时就可以使用此类执行完毕后,通知下主线程。总结:可以看出来,是单独的线程启动,但是可以控制住顺序了。

java8两个list中发数据比较_Java8 Stream对两个 List 遍历匹配数据的优化处理操作-程序员宅基地

文章浏览阅读1.2w次。使用场景,有两个List>集合,第一个集合的所有元素都是需要保留的。第一个集合的值为:{name=张三丰1, id=1}{name=张三丰2, id=2}{name=张三丰3, id=3}{name=张三丰4, id=4}{name=张三丰5, id=5}{name=张三丰6, id=6}{name=张三丰7, id=7}{name=张三丰8, id=8}第二个集合的值为:{grade=61..._list stream 比较

五子棋游戏JS实现-程序员宅基地

文章浏览阅读846次。使用HTML5和JS实现五子棋游戏

Androidstudio的gradle过大内存溢出解决-程序员宅基地

文章浏览阅读5.3k次。首先贴出问题:解决思路如下图:

随便推点

解决龙格现象matlab,matlab实现Lagrange多项式插值观察龙格现象-程序员宅基地

文章浏览阅读3.8k次,点赞4次,收藏27次。Matlab进行Lagrange多项式插值拉格朗日插值法对函数y=1./(1+25*x.^2)在区间[-1,1]进行5次、10次、15次插值观察龙格现象主程序1.拉格朗日function [c,l]=lagran(x,y)%c为多项式函数输出的系数%l为矩阵的系数多项式%x为横坐标上的坐标向量%y为纵坐标上的坐标向量w=length(x);n=w-1;l=zeros(w,w);for k=1:n+..._龙格现象图像matlab报告

电商管理系统客户端原型分享-程序员宅基地

文章浏览阅读1.4k次。如何画电商管理系统原型,一起来看吧。(资源可下载)_客户端原型

Pandas Dataframe合并连接Join和merge 参数讲解-程序员宅基地

文章浏览阅读638次,点赞28次,收藏14次。但是如果是连接多个键的名字都不同的时候,(比如df1.key1 == df2.key2 , df1.key3 == df2.key4) 那么则最好先通过rename的函数对Dataframe进行改名,之后再merge。当使用cross的时候不需要指定on啥,因为会把左右连接的所有的可能都返回,并不在乎谁和谁相等。这个是merge中的参数,当设置为True的时候,意思是使用索引进行连接。其中merge是需要给键值的。join默认的是使用索引的值。how表示的是连接的方式,一般包含下面的参数,默认是左连接。

【Oracle数据库】存储过程有几种循环方式?_oracle存储过程for loop循环-程序员宅基地

文章浏览阅读1.1k次,点赞17次,收藏9次。在所有的编程语言中,循环都是一个非常重要的语法,掌握循环,是程序员必不可少的能力。在Oracle中,常用的有四种循环,loop循环,while循环,for循环和goto循环_oracle存储过程for loop循环

java/php/node.js/python会议报名系统【2024年毕设】-程序员宅基地

文章浏览阅读676次,点赞18次,收藏23次。本系统带文档lw万字以上文末可领取本课题的JAVA源码参考。

GD32系列总结 - VScode + keil开发环境搭建_gd32f405 vscode-程序员宅基地

文章浏览阅读3.1k次,点赞7次,收藏47次。GD32系列总结 - VScode + keil开发环境搭建写在前面Keil Assistant插件安装与使用遇见的问题include波浪线警告中文备注乱码last line of file ends without a newline常用插件Chinese (Simplified) Language Pack for Visual Studio CodeBracket Pair ColorizerTabnine AI Code Completion写在前面来了新公司之后,由于这次遇见的单片机是GD32_gd32f405 vscode

推荐文章

热门文章

相关标签