Python如何生成与参考字典同结构、值为numpy随机数的新字典
解决方案
你可以直接在字典推导式中同步完成取值长度计算和随机数生成,不需要先生成空字典再填充,自动适配参考字典的结构变更。
完整实现代码
import numpy as np # 参考字典,可任意修改结构 memory_map = {'data': [1,2,3], 'theta': [4,5,6,7]} # 自定义随机参数 random_seed = 42 value_low = 0 value_high = 10 # 生成匹配结构的随机字典 rng = np.random.default_rng(random_seed) random_dict = { key: rng.uniform(low=value_low, high=value_high, size=len(value)).tolist() for key, value in memory_map.items() }
说明
- 代码直接遍历参考字典的键值对,自动读取每个键对应列表的长度作为随机值生成的
size参数,参考字典增删键、修改列表长度都不需要调整生成逻辑 - 末尾的
tolist()用于将numpy返回的数组转换为Python原生列表,和预期输出格式对齐,若可以接受数组格式可删除该方法 - 若需要生成整数随机值,将
rng.uniform替换为rng.integers即可
输出示例
以上代码运行后得到的结果如下:
{'data': [7.739560485559637, 4.388784400713585, 8.585979214204562], 'theta': [6.973680186338767, 0.9417734780723863, 9.756223470142236, 7.611397109933601]}
内容的提问来源于stack exchange,提问作者Zohim Chandani
相关产品推荐
相关产品推荐

