如何让Python字典中生成的随机数值保持固定不变
解决固定随机年龄的问题
1. 用随机种子固定年龄生成结果
要让每次运行生成的随机年龄完全一致,只需要给random模块设置一个固定的随机种子。种子相同,生成的随机数序列就会完全重复。
修改你的代码,在导入random后添加一行种子设置:
footballers = [] # 初始化11名球员,先统一设为门将 for _ in range(11): footballers.append({"position": 'goalkeeper'}) # 批量修改位置,比多个循环更简洁 footballers[1:5] = [{"position": "defender"} for _ in footballers[1:5]] footballers[5:8] = [{"position": "midfield"} for _ in footballers[5:8]] footballers[8:11] = [{"position": "forward"} for _ in footballers[8:11]] import random # 设置固定种子,数字可任意选,只要每次运行都用同一个 random.seed(42) for baller in footballers: baller["age"] = random.randint(17, 34) print(baller)
无论运行多少次,这段代码生成的年龄都会和第一次运行完全一样。
2. 长期固定数据(适合联赛级大量数据)
如果需要把生成好的球员数据永久固定下来,不用每次运行都生成,可以用json模块把数据保存到文件,后续直接读取使用:
保存数据到文件
import json # 生成完footballers列表后执行保存 with open("footballers_data.json", "w", encoding="utf-8") as f: json.dump(footballers, f, indent=2)
后续直接加载数据
import json with open("footballers_data.json", "r", encoding="utf-8") as f: footballers = json.load(f) print(footballers) # 直接使用之前生成好的固定数据
这种方法适合处理大量数据,不用每次重新生成,也避免了手动输入的麻烦。
内容的提问来源于stack exchange,提问作者Krabtreb
相关产品推荐
相关产品推荐

