2013-09-30 53 views
0

最近,我一直在Python语言编程。我遇到了尝试将字符串转换为关键字的问题。如何将常规字符串转换为关键字?

假设我用一个短语raw_input()并把该字符串转换成一个对象,列表或字典。

例如,我可以把字符串“foo”到Foo和该名称指定给一个python结构。

我该怎么做?

回答

2

你不想这样做,所以不是这样做,使用字典:

answer = raw_input("Enter: ") # Let's assume I enter "Foo" 
mydict = {answer: raw_input("Enter a value for {} ".format(answer)} Let's say I enter "5" 
print mydict.get('Foo') 
# 5 
+0

我真的很喜欢这种方法。谢谢:) – JKodner

+1

Lol,@Haidro,你只是在问这些问题。考虑到你提到的两个受骗者接受回答者......用相同的答案... – kojiro

+0

@kojiro哇,我从来没有注意到! – TerryA

0

您可以修改globals字典如果你想。

globals()[raw_input()] = None # whatever "structure" you desire. 
print foo 

上述代码仅在用户实际输入字符串“foo”时才有效。否则它会说NameError: name 'foo' is not defined

但是,是像Haidro说,不管你是要为做这可能是一个愚蠢的想法。

由于@icktoofay在评论中指出,这只会与内置功能globals()的返回值来运作。修改内置函数locals()的返回值实际上不会修改本地名称空间。

+0

这种方法也很好。谢谢你:) – JKodner

+0

应该指出,这*只适用于全局变量;修改'locals'的返回值实际上并不改变局部变量。 – icktoofay

+0

@icktoofay编辑我的帖子以包含那一点信息,谢谢。 – Shashank

相关问题