怎么在Python中使用random.shuffle()函数打乱列表顺序

怎么在Python中使用random.shuffle()函数打乱列表顺序?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

random.shuffle()方法提供了完美的解决方案。

怎么在Python中使用random.shuffle()函数打乱列表顺序

不会生成新的列表,只是将原列表的次序打乱

#shuffle()使用样例
importrandom

x=[iforiinrange(10)]
print(x)
random.shuffle(x)
print(x)

源码及注释(个人翻译注释)

defshuffle(self,x,random=None):
"""Shufflelistxinplace,andreturnNone.
原位打乱列表,不生成新的列表。

Optionalargumentrandomisa0-argument
functionreturningarandomfloatin[0.0,1.0);
ifitisthedefaultNone,
thestandardrandom.randomwillbeused.
可选参数random是一个从0到参数的函数,返回[0.0,1.0)中的随机浮点;
如果random是缺省值None,则将使用标准的random.random()。
"""

ifrandomisNone:
randbelow=self._randbelow
foriinreversed(range(1,len(x))):
#pickanelementinx[:i+1]withwhichtoexchangex[i]
j=randbelow(i+1)
x[i],x[j]=x[j],x[i]
else:
_int=int
foriinreversed(range(1,len(x))):
#pickanelementinx[:i+1]withwhichtoexchangex[i]
j=_int(random()*(i+1))
x[i],x[j]=x[j],x[i]

random 中其他的方法

classRandom(_random.Random):

##--------------------integermethods-------------------
defrandrange(self,start,stop=None,step=1,_int=int):

defrandint(self,a,b):

def_randbelow(self,n,int=int,maxsize=1<<BPF,type=type,
Method=_MethodType,BuiltinMethod=_BuiltinMethodType):

##--------------------sequencemethods-------------------
defchoice(self,seq):

defshuffle(self,x,random=None):

defsample(self,population,k):

defchoices(self,population,weights=None,*,cum_weights=None,k=1):

##--------------------uniformdistribution-------------------
defuniform(self,a,b):

##--------------------triangular--------------------
deftriangular(self,low=0.0,high=1.0,mode=None):

##--------------------normaldistribution--------------------
defnormalvariate(self,mu,sigma):

##--------------------lognormaldistribution--------------------
deflognormvariate(self,mu,sigma):

##--------------------exponentialdistribution--------------------
defexpovariate(self,lambd):

##--------------------vonMisesdistribution--------------------
defvonmisesvariate(self,mu,kappa):

##--------------------gammadistribution--------------------
defgammavariate(self,alpha,beta):

##--------------------Gauss(fasteralternative)--------------------
defgauss(self,mu,sigma):

defbetavariate(self,alpha,beta):

##--------------------Pareto--------------------
defparetovariate(self,alpha):

##--------------------Weibull--------------------
defweibullvariate(self,alpha,beta):

关于怎么在Python中使用random.shuffle()函数打乱列表顺序问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注恰卡编程网行业资讯频道了解更多相关知识。

发布于 2021-03-24 01:22:10
收藏
分享
海报
0 条评论
169
上一篇:optimization怎么在webpack4中使用 下一篇:怎么在Vue项目中使用matomo统计访问流量
目录

    推荐阅读

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码