Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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中使用字符串作为数组的名称,以便在for循环中使用_Python_Arrays_String_For Loop - Fatal编程技术网

如何在python中使用字符串作为数组的名称,以便在for循环中使用

如何在python中使用字符串作为数组的名称,以便在for循环中使用,python,arrays,string,for-loop,Python,Arrays,String,For Loop,比方说 t1=loadtxt("t\\1.txt") t2=loadtxt("t\\2.txt") 假设内部1.txt是 1 2 3 4 5 6 1 2 3 4 5 6 也假设在2.txt中是 # 我得到了“类型错误:字符串索引必须是整数” 我想要这段代码做的是 st=t1[0,0]+t1[0,1]+t1[0,2]+t2[0,0]+t2[0,1]+t2[0,2] 那么如何实现这个目标呢? 如何在for循环中用正则数表示数组名?不要一个接一个地求和每个值。有很多方法可以做你想做的事情(请参阅

比方说

t1=loadtxt("t\\1.txt")
t2=loadtxt("t\\2.txt")
假设内部1.txt是

1 2 3
4 5 6
1 2 3
4 5 6
也假设在2.txt中是

# 我得到了“类型错误:字符串索引必须是整数”

我想要这段代码做的是 st=t1[0,0]+t1[0,1]+t1[0,2]+t2[0,0]+t2[0,1]+t2[0,2]

那么如何实现这个目标呢?
如何在for循环中用正则数表示数组名?不要一个接一个地求和每个值。

有很多方法可以做你想做的事情(请参阅问题注释中的链接),但是如果你可以简单地做以下事情,为什么还要麻烦呢

st = 0
for t in (t1,t2):
    for i in range(3):
        st += t[0,i]

有很多方法可以做你想做的事情(请参阅问题注释中的链接),但如果你可以简单地做到,为什么还要麻烦呢

st = 0
for t in (t1,t2):
    for i in range(3):
        st += t[0,i]

好吧,你可以把字典和所有的t一起使用,也可以使用exec内置函数Python 2.x如下所示:

t1 = [1,2,3]
t2 = [1,2,3]
st=0

for i in range(2):
    for j in range(3):
        exec "a = t"+str(i+1)+"["+str(j)+"]"
        st+=a
print st
t1 = [1,2,3]
t2 = [1,2,3]
st=0

    for i in range(2):
        for j in range(3):
            exec("a = t"+str(i+1)+"["+str(j)+"]")
            st+=a
    print(st)
python3.x中,您希望对内置函数使用()。使代码如下所示:

t1 = [1,2,3]
t2 = [1,2,3]
st=0

for i in range(2):
    for j in range(3):
        exec "a = t"+str(i+1)+"["+str(j)+"]"
        st+=a
print st
t1 = [1,2,3]
t2 = [1,2,3]
st=0

    for i in range(2):
        for j in range(3):
            exec("a = t"+str(i+1)+"["+str(j)+"]")
            st+=a
    print(st)

exec函数将获取一个字符串,并将其作为普通代码行执行。通过这种方式,您可以组装命令并让解释器完成其余的工作。(使用字符串格式而不是将字符串与+连接可能是一种更好的方法)

您可以将字典与所有t一起使用,也可以使用exec内置函数Python 2.x如下所示:

t1 = [1,2,3]
t2 = [1,2,3]
st=0

for i in range(2):
    for j in range(3):
        exec "a = t"+str(i+1)+"["+str(j)+"]"
        st+=a
print st
t1 = [1,2,3]
t2 = [1,2,3]
st=0

    for i in range(2):
        for j in range(3):
            exec("a = t"+str(i+1)+"["+str(j)+"]")
            st+=a
    print(st)
python3.x中,您希望对内置函数使用()。使代码如下所示:

t1 = [1,2,3]
t2 = [1,2,3]
st=0

for i in range(2):
    for j in range(3):
        exec "a = t"+str(i+1)+"["+str(j)+"]"
        st+=a
print st
t1 = [1,2,3]
t2 = [1,2,3]
st=0

    for i in range(2):
        for j in range(3):
            exec("a = t"+str(i+1)+"["+str(j)+"]")
            st+=a
    print(st)


exec函数将获取一个字符串,并将其作为普通代码行执行。通过这种方式,您可以组装命令并让解释器完成其余的工作。(使用字符串格式而不是使用+连接字符串可能是更好的方法)

您的代码示例不包括t1和t2。t1[0,0]=1尝试将值1赋给t1的索引(0,0)。但什么是t1?是的,实际上t1=loadtxt(“t\1.txt”),类似于t2。我在问题陈述中添加了这一部分。您的代码示例不包括t1和t2。t1[0,0]=1尝试将值1赋给t1的索引(0,0)。但什么是t1?是的,实际上t1=loadtxt(“t\1.txt”),类似于t2。我已经在问题陈述中添加了这一部分。哎呀,敞开心扉,但是如果我有t1,t2。。。。t100?我想在这种情况下,只将t存储为字典键而不是变量会更容易。稍后我将了解更多信息~oops,敞开心扉,但是如果我有t1,t2。。。。t100?我认为在这种情况下,只将t存储为字典键而不是变量会更容易。稍后我将了解更多内容~但当我运行代码时,它告诉我“exec”a=t“+str(I+1)^SyntaxError:invalid syntax”显然是因为我给出了一个假设您使用普通变量的示例,不像你实际做的那样。我更新了我的示例,使其适合使用表的a代码。不知何故,同样的警告再次出现,“exec”a=t“+str(I+1)+“[“+str(j)+”]“^SyntaxError:无效语法”是因为python版本,我使用的是python 3.4.0抱歉,我假设您使用的是pythong 2.x。Python3.x将()用于所有内置函数,如print和exec。只是想说清楚,我为2.x和3.x编辑了我的文章。希望这有帮助。很好的解决方案!!虽然有点慢,但我今晚可以睡个好觉~但是当我运行代码时,它告诉我“exec”a=t“+str(I+1)^SyntaxError:invalid syntax”显然是“无效语法”,因为我给出的示例假设您使用的是普通变量,而不是实际使用的表。我更新了我的示例,使其适合使用表的a代码。不知何故,同样的警告再次出现,“exec”a=t“+str(I+1)+“[“+str(j)+”]“^SyntaxError:无效语法”是因为python版本,我使用的是python 3.4.0抱歉,我假设您使用的是pythong 2.x。Python3.x将()用于所有内置函数,如print和exec。只是想说清楚,我为2.x和3.x编辑了我的文章。希望这有帮助。很好的解决方案!!虽然有点慢,但我今晚可以睡个好觉~