首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在for循环中打印具有迭代名称的不同变量的内容

在for循环中打印具有迭代名称的不同变量的内容
EN

Stack Overflow用户
提问于 2017-10-16 09:59:43
回答 4查看 179关注 0票数 0

有人能向我解释一下,如何在循环中打印以下变量的内容?

代码语言:javascript
复制
Week23 = [12-9, "free", 15.30-12.30, "free", 12-9]
Week24 = []
Week25 = []
Week26 = []
Week27 = []
Week28 = []
Week29 = []
...

我试着玩了下面的游戏,但它没有打印内容。exec语句只是打印出"Week23“等。由于解析错误,eval语句无法工作。

代码语言:javascript
复制
import numpy as np
length = np.linspace(23,42,42-23+1)

for i in length:
    print("Week" + str(i))
    # print(eval("Week" + str(i)))
    # exec('print("Week" + str(i))')
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2017-10-16 10:11:15

您可以使用本地人()函数:

代码语言:javascript
复制
Week23 = [12-9, "free", 15.30-12.30, "free", 12-9]
Week24 = []


for week in [23,24]:
    print (locals()['Week%s' % week])

更多的琵琶会成为一本字典。

票数 -2
EN

Stack Overflow用户

发布于 2017-10-16 10:12:22

您可以使用全局()获得一个全局变量及其子集的字典,使用您的逻辑将i转换为整数,然后再将其转换为string:

代码语言:javascript
复制
for i in length:
    print(globals()["Week" + str(int(i))])
票数 -1
EN

Stack Overflow用户

发布于 2017-10-16 10:27:32

问题在数组length中。numpy.linspace()实际上生成一个float数组,如下所示。

代码语言:javascript
复制
[23.0, 24.0, ..., 42.0]

试试这些密码,你应该得到你想要的。

代码语言:javascript
复制
for i in range(23, 43):
    print("Week" + str(i))
    print(eval("Week" + str(i)))

最后,使用变量作为名称的一部分确实不是一个好主意。如果可以的话,可以试试dict

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46767597

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档