python有四个数字_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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值