如何在每次循环进行时更改分配数据的变量?

时间:2017-06-19 19:09:47

标签: python variables

这是程序的例子

hello1,hello2,hello3,hello4,hello5=(),(),(),(),()
a_list=[hello1,hello2,hello3,hello4,hello5]
greetingslist= ["hello","good morning","good evening","afternoon","hi"]
for i range 5:
    a_list[i]=greetingslist[i]

所以我希望每个变量标识符都不同,以便为每个变量标识符分配一些东西。但是,它不会识别变量旁边的[i],因此会发生错误。

我不想更改程序或者太复杂,但我希望这可以在一个循环内完成......有什么方法可以做到这一点???

提前感谢!

1 个答案:

答案 0 :(得分:0)

您只是存储对您在变量中重写的变量的引用。如果您想按名称动态设置变量,则必须根据命名空间使用globals() / locals() / setattr(),例如:

greetings_list = ["hello", "good morning", "good evening", "afternoon", "hi"]

for i, v in enumerate(greetings_list):
    locals()["hello" + str(i + 1)] = v

print(hello1)  # hello
print(hello2)  # good morning
print(hello3)  # good evening
print(hello4)  # afternoon
# etc.

不是它推荐的风格或任何东西,远非如此,但这是你如何做到的。