我想给序列变量赋值。比如:
data_1 = a data_2 = 2*a ... data_n = n*a
字符串如何使用一个循环来做到这一点?
z9zf31ra1#
我不记得有什么用例是污染全局命名空间是有益的。在这些情况下,最好使用字典或列表(当你有连续的整数索引时):
a = 10 d = {f'data_{i}': a * i for i in range(1, 10)} print(d['data_2']) # 20
字符串但现在,我认为你甚至不需要存储它们,你可以用一个简单的函数轻松地在运行中生成它们。我将使用一个类来展示一种更详细的方法,这个类给予获取对象的dict语法:
class Data: def __init__(self, a) -> None: self.a = a def __getitem__(self, item: str): _, n = item.split("_") return self.a * int(n) d = Data(10) print(d["data_2"]) # 20
型
m4pnthwp2#
for i in range(1,n+1): eval("data_"+str(i)+" = "+str(a*i)) exec("print(data_"+str(i))")
字符串
2条答案
按热度按时间z9zf31ra1#
我不记得有什么用例是污染全局命名空间是有益的。在这些情况下,最好使用字典或列表(当你有连续的整数索引时):
字符串
但现在,我认为你甚至不需要存储它们,你可以用一个简单的函数轻松地在运行中生成它们。
我将使用一个类来展示一种更详细的方法,这个类给予获取对象的dict语法:
型
m4pnthwp2#
字符串