我希望用Python中的两个字符串创建一个变量名,例如:
a = "column_number"
b = "_url1"
然后能够获得我可以使用的变量名"column_number_url1"
。
我很欣赏这一般不是一个好主意 - 有很多帖子说明为什么这是一个坏主意(例如How do I create a variable number of variables?,Creating multiple variables) - 我主要希望能够做到因为这些都是在代码中的其他地方定义的变量,并且想要一种能够重新访问它们的简单方法(即,而不是创建数以千计的唯一变量,我同意字典等会更好)
据我所知,我发现的其他帖子中的答案都是替代方法,而不是如何从两个字符串创建变量名称。
答案 0 :(得分:11)
>>> a = "column_number"
>>> b = "_url1"
>>> x = 1234
>>> globals()[a + b] = x
>>> column_number_url1
1234
没有多少帖子解释如何执行此操作的原因是(因为您可能已经收集)它不是一个好主意。我保证你的用例也不例外。
如果您没有注意到,globals()
本质上是全局变量的字典。这意味着你应该一直使用字典;)
答案 1 :(得分:1)
作为Joel答案的替代方案,字典会更好:
a = "column_number"
b = "_url1"
data = {}
data[a+b] = 42
答案 2 :(得分:1)
您可以使用字典:
a = "column_number"
b = "_url1"
obj = {}
obj[a+b] = None
print obj #{"column_number_url1": None}
或者,您可以使用eval
,但请记住要始终关注eval
/ exec
的使用情况:
a = "column_number"
b = "_url1"
exec(a+b+" = 0")
print column_number_url1 #0