Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/235.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python中有没有一种方法可以引用多个条件变量?_Python_If Statement_Conditional Statements - Fatal编程技术网

在Python中有没有一种方法可以引用多个条件变量?

在Python中有没有一种方法可以引用多个条件变量?,python,if-statement,conditional-statements,Python,If Statement,Conditional Statements,例如,如果一个案例看起来像这样: distance_11 = 5 distance_12 = 3 distance_13 = 2 if distance_* == 3: distance_* = [1,2,3] distances = [5, 3, 2] for (i, val) in enumerate(distances): if val == 3: distances[i] = [1, 2, 3] 我知道代码显然是不正确的,但我正在尝试显示我正在尝

例如,如果一个案例看起来像这样:

distance_11 = 5
distance_12 = 3
distance_13 = 2

if distance_* == 3:
    distance_* = [1,2,3] 
distances = [5, 3, 2]

for (i, val) in enumerate(distances):
    if val == 3:
        distances[i] = [1, 2, 3]

我知道代码显然是不正确的,但我正在尝试显示我正在尝试做的事情。搜索一组具有相似名称的变量,如果其中一个满足该条件,则将其分配给指定的数组。我知道我可以为每个特定变量编写一个elif条件,但是在实际的用例中有更多的变量。任何形式的帮助都将不胜感激-谢谢。

您应该将距离列成如下列表或数组:

distance_11 = 5
distance_12 = 3
distance_13 = 2

if distance_* == 3:
    distance_* = [1,2,3] 
distances = [5, 3, 2]

for (i, val) in enumerate(distances):
    if val == 3:
        distances[i] = [1, 2, 3]

您可以使用
vars
来实现这一点

距离_11=5
距离_12=3
距离_13=2
对于范围(11,14)内的i:
varName=f'distance_{i}'
如果vars()[varName]==3:
vars()[varName]=[1,2,3]

我想您正在寻找这样的解决方案

distance_11 = 5
distance_12 = 3
distance_13 = 2
dists = [distance_11, distance_12, distance_13]

for i in range(len(dists)):
    if dists[i] == 3:
        dists[i] = [1, 2, 3]

您肯定应该将数组用作。 但是如果不能更改变量名,可以使用Python的
globals
builtin

from fnmatch import filter    

distance_11 = 5
distance_12 = 3
distance_13 = 2

for var_name in filter(globals().keys(), 'distance_*'):
    if globals()[var_name] == 3:
        globals()[var_name] = [1, 2, 3]

如果
distance.*
变量不是全局变量,还可以查看
distance
为什么不是数组?或者(更好的)python中的
set
“Array”=>列表