如何创建长字符串列表?批量生成3600个不同字符串的方法咨询
嘿,手动创建3600个不同字符串?那绝对是找罪受!给你几个实用的方案,根据你要的字符串类型挑就行:
方法1:生成有规律的编号字符串(最简单)
如果你需要的是像'1'、'2'…'3600'这种有序的不同字符串,直接用列表推导式就能搞定——注意你原来的示例生成的是3599个重复的'1',并不是不同的,改成下面这样就对了:
list_1 = [str(i) for i in range(1, 3601)] # range是左闭右开,所以要写到3601才会包含3600 print(list_1)
要是需要给字符串加前缀(比如'user_001'这种格式),用f-string改一下就行:
list_1 = [f'user_{i:03d}' for i in range(1, 3601)] # :03d 会把数字补成3位,比如1变成001
方法2:生成随机且唯一的字符串
如果需要完全无规律的不同字符串,有两种靠谱的方式:
方式A:自定义随机字符串(可控格式)
用random和string模块生成,还能控制字符串的长度和组成(比如字母+数字):
import random import string def get_random_str(length=6): # 从大小写字母+数字里随机选字符组成字符串 chars = string.ascii_letters + string.digits return ''.join(random.choices(chars, k=length)) # 生成3600个不重复的随机字符串 unique_strings = [] while len(unique_strings) < 3600: new_str = get_random_str() if new_str not in unique_strings: unique_strings.append(new_str) print(unique_strings)
方式B:用UUID生成绝对唯一的字符串
如果怕重复(比如短字符串容易撞),直接用uuid模块生成全球唯一的标识符,完全不需要去重:
import uuid list_1 = [str(uuid.uuid4()) for _ in range(3600)] print(list_1)
生成的字符串是类似'f47ac10b-58cc-4372-a567-0e02b2c3d479'的格式,绝对不会重复。
方法3:从外部数据源导入
如果这些字符串是有特定内容的(比如从现有文本、CSV文件里来),直接读取文件就行。比如你有一个每行存一个字符串的strings.txt文件:
with open('strings.txt', 'r', encoding='utf-8') as file: # 读取所有行,去掉换行符,取前3600个 list_1 = [line.strip() for line in file][:3600]
内容的提问来源于stack exchange,提问作者oussama
相关产品推荐
相关产品推荐

