Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/329.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/EmptyTag/136.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 - Fatal编程技术网

选择名称以某些字母开头的所有python变量?

选择名称以某些字母开头的所有python变量?,python,Python,我试图添加一些变量,每个变量都是numpy数组: x = sum(d1 + d2 + d3 + d4... etc...) 有没有一种方法可以只指定任何变量的字符串-d加上任何数字-应该包括在内?也许有一个简单的切片样式选项?比如: x = sum(d[1:]) 在创建列表方面,我仍然需要将所有数组编译成一个列表,因此我最初的问题——如何根据名称组合它们——仍然有效。只需创建一个列表 d = [d1, d2, ...] def dval(num): return d[num] def d

我试图添加一些变量,每个变量都是numpy数组:

x = sum(d1 + d2 + d3 + d4... etc...)
有没有一种方法可以只指定任何变量的字符串-d加上任何数字-应该包括在内?也许有一个简单的切片样式选项?比如:

x = sum(d[1:])

在创建列表方面,我仍然需要将所有数组编译成一个列表,因此我最初的问题——如何根据名称组合它们——仍然有效。

只需创建一个列表

d = [d1, d2, ...]

def dval(num):
return d[num]

def dsum(lwr, upr, stp=1):
return sum(d[lwr:upr:stp])

只需将
d
列成一个列表

d = [d1, d2, ...]

def dval(num):
return d[num]

def dsum(lwr, upr, stp=1):
return sum(d[lwr:upr:stp])

正如@בינמןככן所说,您可以使用
locals()
来执行此特定任务,尽管在这种情况下更建议使用列表,但在您的情况下也可以这样使用它:

your_d_vars = [val for key,val in  locals().items() if key[0] == 'd' and key[1:].isdigit()]
x = sum(your_d_vars )

正如@בינמןככן所说,您可以使用
locals()
来执行此特定任务,尽管在这种情况下更建议使用列表,但在您的情况下也可以这样使用它:

your_d_vars = [val for key,val in  locals().items() if key[0] == 'd' and key[1:].isdigit()]
x = sum(your_d_vars )
根据thread,实际上,您可以通过字符串获取变量。因此,您可以执行以下操作:

d1=4
d2=5
d3=6
d4=7
总和=0
对于范围(1,5)内的i:
sum+=globals()
打印(总和)#打印22
注:d1、d2、d3、d4。。。必须是全局变量。如有必要,请参阅链接线程以获取更多信息和其他选项。

根据线程,您实际上可以通过字符串获取变量。因此,您可以执行以下操作:

d1=4
d2=5
d3=6
d4=7
总和=0
对于范围(1,5)内的i:
sum+=globals()
打印(总和)#打印22


注:d1、d2、d3、d4。。。必须是全局变量。如有必要,请查看链接线程以获取更多信息和其他选项。

是否有理由认为
d
不是列表?您可以使用
locals()
和regex,但正如@Sayse所说,最好制作一个列表我认为这样的东西不存在,并且会非常好奇地看到它,但似乎这就是列表和字典的目的…אחלהבנין!!!这回答了你的问题吗?为什么
d
不是一个列表?你可以使用
locals()
和regex,但正如@Sayse所说的,最好是制作一个列表。我不认为存在这样的东西,并且会非常好奇地看到它,但似乎这就是列表和字典的用途…א!!!这回答了你的问题吗?我编辑了我的原始帖子,但我相信即使我把变量——所有numpy数组——编入一个列表,我仍然需要一种方法来组合它们,但是我相信即使我把变量——所有numpy数组——放入一个列表中,我仍然需要一种方法来组合它们。然后
x=sum(你的变量)
也可以使用regex作为变量名:
if re.match(r“d\d+”,key)
你的regex确认其余的单词是数字吗?虽然这在技术上符合问题的要求,这是一个解决根本目标的糟糕方法。制作一个列表而不是编号的变量是一个更好的方法。我的意思是你在我的回答中所说的。。。然而,人们可能仍然觉得它很有用……然后
x=sum(你的变量)
也可以使用正则表达式作为变量名:
if re.match(r“d\d+”,key)
你的正则表达式确认剩下的单词是数字吗?虽然这在技术上符合问题的要求,但这是一种解决根本目标的糟糕方法。制作一个列表而不是编号的变量是一个更好的方法。我的意思是你在我的回答中所说的。。。然而,人们可能仍然会发现它是有用的……如果答案已经存在于另一个问题中,那么它应该被标记为一个副本(就像我已经做过的那样);如果答案已经存在于另一个问题中,那么它应该被标记为一个副本(就像我已经做过的那样……)