gpt4 book ai didi

python - 在 Python 中比较随机结果并将其转换为 JSON 文件上的 "points"的简单方法

转载 作者:行者123 更新时间:2023-12-01 06:52:25 25 4
gpt4 key购买 nike

这是我的代码的简化版本:

import json
import random

y = {}
y['red'] = {'name': "red", 'p': 0}
y['blue'] = {'name': "blue", 'p': 0}
y['green'] = {'name': "green", 'p': 0}

with open('y.json', 'w') as f:
json.dump(y, f)

f = open('y.json')
y = json.load(f)

rr = random.randint(1, 101)
rb = random.randint(1, 101)
rg = random.randint(1, 101)

z = '%s%s%s' % (y['red']['name'], " ", y['red']['p'])
zz = '%s%s%s' % (y['blue']['name'], " ", y['blue']['p'])
zzz = '%s%s%s' % (y['green']['name'], " ", y['green']['p'])


print('\n'.join(sorted([z, zz, zzz], key=lambda x: int(x.split()[-1]), reverse=True)))

with open('y.json', 'w') as f:
json.dump(y, f)

“随机”命令目前没有用处,但我想比较这 3 个命令,以便最高的随机数将 3 添加到“p”,第二高的 2 添加到“p”,最低的随机数添加 1 到“p” '.

示例:

如果 rr = 22; RB = 66; rg = 44

那么输出应该是:

blue 3
green 2
red 1

因此我的 JASON 文件中 p 的值为:

y['red'] = {'name': "red", 'p': 1}
y['blue'] = {'name': "blue", 'p': 3}
y['green'] = {'name': "green", 'p': 2}

我知道每次运行程序时 JSON 文件都会被覆盖,但这只是一个简化版本。

我也知道我可以使用 if 语句来实现这一点,但我有点不想这样做,因为我必须链接很多语句,这不是很漂亮,而且如果我想添加的话会花费很多时间更多“颜色”。

我已尽力解释我的问题,但如果仍有任何问题,请询问我。

谢谢你:-)

最佳答案

您可以将另一个项目添加到字典中,然后对该项目上的字典键进行排序。

替换:

rr = random.randint(1, 101)
rb = random.randint(1, 101)
rg = random.randint(1, 101)

与:

for key, value in y.items():
y[key]['rand'] = random.randint(1, 101)

sorted_keys = sorted(y.keys(), key=lambda x: y[x]['rand'])

for i, key in enumerate(sorted_keys):
y[key]['p'] = i + 1

关于python - 在 Python 中比较随机结果并将其转换为 JSON 文件上的 "points"的简单方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58937446/

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