gpt4 book ai didi

python - 创建一个字典列表,每一步仅修改一个值

转载 作者:太空宇宙 更新时间:2023-11-03 14:25:18 30 4
gpt4 key购买 nike

我有一个 python 字典,它描述了一组如下参数:

params = {'V0': 0.040239623194206875, 'theta': 0.2133407345978868,
'omega': 0.8624391468911115, 'kappa': 0.8632687388218084,
'rho': -0.7680944602881048}

集合中的每个参数都有一个代表其变化的常数。我想从这样的集合构建一个字典列表,直到我有 100 组参数。背后的逻辑是我想将 params['V0'] 更改为

params['V0'] += deltaV0 
params['V0'] -= deltaV0

固定其他值后,获取另外 2 个不同的词典添加到我的列表中。我的问题是我无法将我的想法转化为代码。框架应该是这样的:

good_set = [params]

while len(good_set) < 100:


good_set.append(new params)

如何有效地从初始词典中获取新词典?我需要同时从每个参数的初始字典中获取 2 个新字典(因为每次都会添加和减去变化),因此每次迭代总共我应该向列表中添加 5*2=10 个字典。我红色了一些关于字典理解的问题,但他们没有给我输入来解决我的问题

最佳答案

那么你只需要创建一个 dict 的 .copy ,然后适本地更改它。例如:

In [3]: params = {'V0': 0.040239623194206875, 'theta': 0.2133407345978868,
...: 'omega': 0.8624391468911115, 'kappa': 0.8632687388218084,
...: 'rho': -0.7680944602881048}
...:

In [4]: results = []

In [5]: import random

In [6]: for _ in xrange(100):
...: sample_params = params.copy()
...: sample_params['V0'] += random.random()
...: results.append(sample_params)

我使用了 random.random() 作为增量值,您可以使用自定义逻辑以所需的方式进行修改。

<小时/>

如果您的增量是恒定的,并且可以添加、减去或不考虑它们来生成测试用例,您可以尝试

params = {'V0': 0.040239623194206875, 'theta': 0.2133407345978868,
'omega': 0.8624391468911115, 'kappa': 0.8632687388218084,
'rho': -0.7680944602881048}

import random

delta = {'V0': random.random(),
'theta': random.random(),
'omega': random.random(),
'kappa': random.random(),
'rho': random.random()}

list_of_params = [ {key: params[key] + random.randint(-1, 1) * delta[key] for key in params} for _ in xrange(100)]

这里,增量存储在字典中,random.randint(-1, 1) 负责随机添加、减去或忽略特定增量。

关于python - 创建一个字典列表,每一步仅修改一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47678665/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com