python随机生成k个不重复的随机数_使用Python生成不重复的随机值
uuid是128位的全局唯一标识符(univeral unique identifier),通常用32位的一个字符串的形式来表现,自带了uuid模块来进行uuid的生成和管理工作。
python中的uuid模块基于信息如MAC地址、时间戳、命名空间、随机数、伪随机数来uuid。
具体方法有如下几个:
uuid.uuid1() 基于MAC地址,时间戳,随机数来生成唯一的uuid,可以保证全球范围内的唯一性。
uuid.uuid2() 算法与uuid1相同,不同的是把时间戳的前4位置换为POSIX的UID。注意:python的uuid模块中没有uuid2这个方法。
uuid.uuid3(namespace,name) 通过计算一个命名空间和名字的md5散列值来给出一个uuid,保证命名空间中的不同名字具有不同的uuid。但是相同的名字就是相同的uuid了。
namespace的取值如下:
uuid.NAMESPACE_DNS :当指定该命名空间时,参数 name 是一个完全限定的(fully-qualified)域名
uuid.NAMESPACE_URL :当指定该命名空间时,参数name 是一个URL
uuid.NAMESPACE_OID :当指定该命名空间时,参数name 是一个ISO OID
uuid.NAMESPACE_X500:当指定该命名空间时,参数name 是一个DER格式或文本格式的X.500 DN
uuid.uuid4() 通过伪随机数得到uuid,是有一定概率重复的
uuid.uuid5(namespace,name) 和uuid3基本相同,只不过采用的散列算法是sha1
importuuid
name= 'abc'
print(uuid.uuid1())print(uuid.uuid3(uuid.NAMESPACE_DNS,name))print(uuid.uuid3(uuid.NAMESPACE_OID,name))print(uuid.uuid3(uuid.NAMESPACE_URL,name))print(uuid.uuid3(uuid.NAMESPACE_X500,name))print(uuid.uuid4())print(uuid.uuid5(uuid.NAMESPACE_DNS,name))print(uuid.uuid5(uuid.NAMESPACE_OID,name))print(uuid.uuid5(uuid.NAMESPACE_URL,name))print(uuid.uuid5(uuid.NAMESPACE_X500,name))
返回结果:>>> ================================ RESTART ================================
>>>f6bccef8-c7d3-11e9-ac44-2cd974dd0333
5bd670ce-29c8-3369-a8a1-10ce44c7259e
5557cd36-6b67-38ac-83fe-825f5905fc15
874a8cb4-4e91-3055-a476-3d3e2ffe375f
589392cb-93e1-392c-a846-367c45ed1ecc
e1197563-915a-433a-a963-f4ec35ab775c
6cb8e707-0fc5-5f55-88d4-d4fed43e64a8
7697a46f-b283-5da3-8e7c-62c11c03dd9e68661508-f3c4-55b4-945d-ae2b4dfe5db4
53e882a6-63b1-578b-8bf1-8f0878cfa6b7
使用说明:
首先,Python中没有基于DCE的,所以uuid2可以忽略;
其次,uuid4存在概率性重复,由无映射性,最好不用;
再次,若在Global的分布式计算环境下,最好用uuid1;
最后,若有名字的唯一性要求,最好用uuid3或uuid5。
例如:将生成的随机字符串转换为大写,并去掉'-'
importuuid
order_number= str(uuid.uuid1()).upper().replace('-','')
print(order_number)
生成不重复的随机数,还可以利用时间戳生成(微秒级)
importtime
order_number= lambda : int(round(time.time()* 1000*1000))
打印order_number()方法
print(order_number())
python随机生成k个不重复的随机数_使用Python生成不重复的随机值相关推荐
- matlab生成不重复的随机数_怎么生成不重复随机数——《超级处理器》应用
生成随机数,大部分同学都会. 那么,如何生成,不重复的随机数呢?例如,怎么生成20个,100以内的不重复随机数?五秒时间,思考下怎么做? 问题挺简单,做起来还是比较复杂.如果用超级处理器,就非常方便, ...
- python一个函数调用另一个函数中的变量_在Python 中同一个类两个函数间变量的调用方法...
在Python 中同一个类两个函数间变量的调用方法 更新时间:2019年01月31日 15:44:54 作者:wxy_summer 今天小编就为大家分享一篇在Python 中同一个类两个函数间变量的调 ...
- python开发的程序中以电子表格显示数据_使用 Python 读取电子表格中的数据实例详解...
Python 是最流行.功能最强大的编程语言之一.由于它是自由开源的,因此每个人都可以使用.大多数 Fedora 系统都已安装了该语言.Python 可用于多种任务,其中包括处理逗号分隔值(CSV)数 ...
- python中表示单一数据的类型被称为_各种Python数据类型的完整列表
各种Python数据类型的完整列表 如今,Python是最受欢迎的编程语言之一.它允许开发人员将所有精力都放在实现上,而不是将复杂的程序和python中的数据类型用于此目的只是为了简化我们的工作. P ...
- python程序写完后点哪个运行快_让 Python 代码运行更快的最佳方式!
PyPy与CPython PyPy是Python解释器CPython的直接替代品.CPython将Python编译为中间字节码然后由虚拟机解释,而PyPy使用实时(JIT)编译将Python代码转换为 ...
- python中的装饰器、装饰器模式_浅析Python装饰器以及装饰器模式
漫谈 如果作为一个Python入门,不了解Python装饰器也没什么,但是如果作为一个中级Python开发人员,如果再不对python装饰器熟稔于心的话,那么可能并没有量变积累到质变. 我以前也看过很 ...
- java 生成随机数_不会生成随机数?我们来看看java生成随机数的10种方法
1.引言 本文将探讨用 Java 生成随机数的不同方法. 2.Java API Java API 提供了几种随机数生成方法.让我们一起来了解一下. 2.1.java.lang.Math Math 类中 ...
- 关于python无限循环、以下选项错误的是_关于Python的无限循环,以下选项中描述错误的是...
[单选题]以下选项中,符合Python语言变量命名规则的是 [单选题]关于 Python 的复数类型,以下选项中描述错误的是 [单选题]关于Python字符串,以下选项中描述错误的是 [单选题]关于P ...
- python是一种动态语言、这意味着_【python编程的优点是什么?难怪选择python的人越来越多了】- 环球网校...
[摘要]Python是一种动态解释的.强类型定义语言:编写它时不需要定义变量类型.python判断值的类型的方法是什么,那么python编程的优点是什么?难怪选择python的人越来越多了,所以你知道 ...
最新文章
- CodeGen API分析
- 从事软件测试为什么要学自动化?
- 学习JS面向对象成果,借国庆发布个最新作品与大家交流
- asp.net中jQuery $post用法
- PLSQL9.0下载及配置oracle,PLSQL登录时常见问题解决
- java数组复制用for_在JavaScript中复制数组的最快方法 - 切片与'for'循环
- iOS 直播推流 - 搭建基于RTMP的本地Nginx服务器
- QEBA:基于类边界查询访问的黑盒攻击
- 基于Heritrix+Lucene的搜索引擎构建(6)——搜索UI与结果页面
- 关于40G/100G高速PHY的测试
- 云起作者认证大神_2020网络文学“白金大神”名单出炉!顶级作家是怎样炼成的?...
- Linux 常用命令 Updating
- 【毕业设计】深度学习身份证识别系统 - 机器视觉 python
- PHP推荐简单采集微博文章信息自用
- 从文本进度条开始:谈谈自己缺失的Python基础知识
- 项目开发过程中遇到的问题和解决方法
- CTF线下赛AWD总结
- 项目绩效考核体系指标建设
- 计算机网络技术用i3可以吗,买电脑避坑第一步,i3处理器和i5等处理器有什么区别?...
- 人事档案管理系统功能建设分享之博奥智源公司
热门文章
- Python精确指南-第一章环境
- html中第一行代码,HTML5 CSS3初学者指南(1) – 编写第一行代码
- nn.Conv2d的解释
- * poj 3159 Candies 最短路 dijkstra堆优化
- 约瑟夫问题公式及代码实现
- html item 左右滑动,拖动Html元素集合 Drag and Drop any item
- python3 循环语句 for语句和while语句
- 南通大学python期末考试试卷_模拟试卷C
- mysql安装./depcomp_编译安装mysql及问题汇总
- cmd查看某个服务器端口状态,cmd中检测端口是否处于监听状态 | IT博客