我知道这可能会重复出现,但到目前为止我还没有找到(或者应该理解)我正在寻找的答案。
我有一个字符串列表,我想将每个字符串转换成一个变量名,然后我给它赋值。我知道我可能需要一个 dict,但我对它们不熟悉,因为我对 python 比较陌生,到目前为止我看到的所有例子都处理值,而我正在尝试不同的东西。
我在寻找类似的东西:
list = ['spam', 'eggs', 'ham']
for i in range(len(list)):
list[i] = rat.readColumn(ratDataset, list[i])
其中第一个 list[i] 是变量名而不是字符串。第二个 list[i] 是一个字符串(上下文是我从栅格属性表 (rat) 中读取的列的名称)
本质上,我希望列表中的每个字符串都设置为变量名。
这背后的想法是,我可以创建一个循环,而不必为我想要的每个变量写出行,并匹配 rat 列名称(字符串)。也许有比我建议的更啤酒的方式来做到这一点?
最佳答案
尝试以下操作:
lst = ['spam', 'eggs', 'ham']
d = {} # empty dictionary
for name in lst:
d[name] = rat.readColumn(ratDataset, name)
不要使用 list
作为你的标识符,因为它是一个类型标识符,你会掩盖它的存在。 for 循环可以直接迭代其中的元素——无需构造索引并使用它来管理列表。 d['spam']
将是您的变量之一。
不过,也可以创建真正的变量名,如spam
、eggs
、ham
、你可能不会这样做,因为效果是无用的。
关于string - Python将字符串转换为变量名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26158881/