Python 生成一段随机字符串的三种写法

news/2024/7/2 2:38:00

方法1

s1=''.join(random.choice(string.ascii_letters + string.digits) for _ in range(10**7))

方法2

for _ in range(10**7):
    s2 += random.choice(string.ascii_letters + string.digits)

方法3

s3=''.join(random.choices(string.ascii_letters + string.digits, k=10**7))

运行时间对比

import time, random, string

time_s_1 = time.time()
s1=''.join(random.choice(string.ascii_letters + string.digits) for _ in range(10**7))
time_e_1 = time.time()
print('method 1:', str(time_e_1 - time_s_1))

s2=''
time_s_2 = time.time()
for _ in range(10**7):
    s2 += random.choice(string.ascii_letters + string.digits)
time_e_2 = time.time()
print('method 2:', str(time_e_2 - time_s_2))

time_s_3 = time.time()
s3=''.join(random.choices(string.ascii_letters + string.digits, k=10**7))
time_e_3 = time.time()
print('method 3:', str(time_e_3 - time_s_3))

下面是输出的运行时间:

method 1: 9.464683055877686
method 2: 18.667069911956787
method 3: 2.693830728530884

结论:系统内置函数random.choices速度最快


http://www.niftyadmin.cn/n/2752956.html

相关文章

quartz做集群配置较短的时间间隔会重复执行任务的问题

quartz.properties org.quartz.jobStore.misfireThreshold 60000 这个参数(单位为毫秒)设置了以后就是超时1min的就不执行,小于1min会立即执行,当设置15s的情况下,如果我在10:00:00执行了一个任务,下次就是…

Centos 6.5安装mysql

转载自:https://www.cnblogs.com/leffss/p/8512773.html 一.安装前准备 安装采用二进制包方式,软件包5.7.19版本下载地址:https://dev.mysql.com/downloads/mysql/ 选择MYSQL Community Server版本再根据操作系统和版本选择性下载…

UnicodeEncodeError: 'gbk' codec can't encode character '\xa0' in position ... 问题解决办法之一

问题描述 Windows下使用Python写文件的时候,或者将网络数据流写入到本地文件的时候,大部分情况下会遇到下面问题: UnicodeEncodeError: ‘gbk’ codec can’t encode character ‘\xa0’ in position … 解决办法 网络数据流写入文件时&am…

【并查集】【P1525】关押罪犯

传送门 Description Input Output Sample Input 4 6 1 4 2534 2 3 3512 1 2 28351 1 3 6618 2 4 1805 3 4 12884 Sample Output 3512 Hint Solution 非常显然的并查集题目,在本题中,对于每个罪犯i,维护两个信息:必须要和他关在一起…

Python 十进制转换为二进制 高位补零

这里需要使用内置函数.format() 高位补零 >>> a 2 >>> b {:08b}.format(a)输出结果为八位二进制,且高位补零。 高位不补零 >>> b {:8b}.format(a)输出结果为八位二进制,但是高位不补零。 需要注意的是,输…

全局过滤器filter的用法

**1.**注册在全局的fliter (1)全局方法 Vue.filter() 注册一个自定义过滤器,必须放在Vue实例化前面 (2) 过滤器函数始终以表达式的值作为第一个参数。带引号的参数视为字符串,而不带引号的参数按表达式计算 (3)可以设置两个过滤器参数,前提是这两个过滤器处理的不冲…

在Maven上Web项目添加Spring框架

1. pom.xml添加Spring依赖包 <!-- spring 核心依赖--><!-- context依赖beans,aop,core,expression;core依赖logging;所以一次导入6个包--><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId&…

Ubuntu下 DevToolsActivePort file doesn't exist 错误

错误描述 Ubuntu下运行一个selenium调用无头chrome浏览器进行爬取的Python程序报出如下的错误&#xff1a; (unknown error: DevToolsActivePort file doesnt exist) (The process started from chrome location /usr/bin/google-chrome is no longer running, so ChromeDri…