Python批量生成1000万指定格式手机号存入列表问题求解
实现方案
现有代码的问题点:
create_phone_number()错误将拼接好的手机号字符串转为单字符列表返回,不符合手机号的存储格式要求- 随机数取值边界有误:3位段取
random.randint(1,1000)时会出现值为1000的情况,经zfill(3)处理后长度为4,不符合eee的3位要求;同理4位段取到10000时经zfill(4)处理后长度为5,不符合ssss的4位要求 - 函数未支持指定生成数量
n的入参,循环逻辑仅打印生成结果,未将结果存入phone_number_list
修正后代码:
import random phone_number_list = [] def create_phone_number(n): """生成n个格式为532-eee-ssss的随机手机号""" result = [] prefix = "532" for _ in range(n): # 3位段取值0-999,补前导0保证固定3位长度 mid_part = str(random.randint(0, 999)).zfill(3) # 4位段取值0-9999,补前导0保证固定4位长度 suffix_part = str(random.randint(0, 9999)).zfill(4) result.append(f"{prefix}-{mid_part}-{suffix_part}") return result # 生成10000000个手机号存入目标列表 phone_number_list = create_phone_number(10000000) # 可选:校验生成数量 # print(len(phone_number_list))
提示:1000万条手机号全量存入列表会占用数百MB内存,若设备内存不足,可调整逻辑为每生成一批就写入本地文件,无需全量存在列表中。
内容的提问来源于stack exchange,提问作者Taha Yasin Yilmaz
相关产品推荐
相关产品推荐

