场景:
现在有一个list:[1,2,3,4,5,6]
,我需要把这个list在输出的时候,是以一种随机打乱的形式输出。
专业点的术语:将一个容器中的数据每次随机逐个遍历一遍。
注意:不是生成一个随机的list集。
环境:
Python 3.6
解决方案:
方案一:
有人可能会通过Random内置函数,来间接实现想要的结果。但是这种方式,太原始,也不够优雅,而且有种重复造轮子的嫌疑。这里我就不贴我自己通过random实现的效果了。
方案二:
Random中有一个random.shuffle()方法提供了完美的解决方案。代码如下:
x = [1,2,3,4,5,6]
输出结果:
第一次输出内容:[6, 5, 1, 3, 2, 4]
从结果我们可以看出,输出是完全随机的,代码量就两行,不需要random,不需要for循环。
源码解读:
此部分原文链接:Python中打乱列表顺序 random.shuffle()的使用方法[1]
def shuffle(self, x, random=None):
注意 :从代码的注释,我们看到
random.shuffle()
是对原list做修改,如果需要保留原list,请注意这个细节。”
参考资料
[1]
Python中打乱列表顺序 random.shuffle()的使用方法: https://blog.csdn.net/chichu261/article/details/83302736?utm\_medium=distribute.pc\_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth\_1-utm\_source=distribute.pc\_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase
本文分享自微信公众号 - BigYoung小站(bigyoungs)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。