gpt4 book ai didi

python - 检查多个值并更改它们

转载 作者:行者123 更新时间:2023-11-28 21:42:09 25 4
gpt4 key购买 nike

大家好,我有一个问题。

我有三个变量,rF、tF 和 dF。现在这些值的范围可以从 -100 到 +100。我想检查所有这些,看看它们是否小于 1;如果是,则将它们设置为 1。

一个简单的方法就是 3 个 if 语句,比如

if rF < 1:
rF = 1
if tF < 1:
tF = 1
if dF < 1:
dF = 1

但是,如您所见,这看起来很糟糕,如果我有,比如说这些值中的 50 个,这很容易失控。

我试着把它们放在一个数组中:

for item in [rF, tF, dF]:
if item < 1:
item = 1

但是这不起作用。我相信,当您这样做时,您会创建一个完全不同的对象(数组),并且当您更改项目时,您不会更改变量本身,而是更改数组的值。

所以我的问题是:这样做的优雅方式是什么?

最佳答案

如果您只有三个要跟踪的变量,为什么不使用字典呢?

rF, tF, dF = 100, -100, 1

d = {'rF': rF, 'tF': tF, 'dF': dF}

for k in d:
if d[k] < 1:
d[k] = 1

print(d)
{'rF': 100, 'tF': 1, 'dF': 1}

然后,如果您稍后要引用这些值中的任何一个,您可以简单地执行此操作(作为一个简单的示例):

def f(var):
print("'%s' is equal to %d" % (var, d[var]))

>>> f('rF')
'rF' is equal to 100

如果你真的想使用列表,并且你知道列表的顺序,你可以这样做(但是字典是为这类问题制作的):

arr = [rF, tF, dF]
arr = [1 if x < 1 else x for x in arr]

print(arr)
[100, 1, 1]

请注意,列表理解方法实际上不会更改 rFtFdF 的值。

关于python - 检查多个值并更改它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44088347/

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