如何在python中将参数设置为字典或变量
我试图在python中创建一个函数,用自定义名称创建字典。我目前使用的代码如下所示:如何在python中将参数设置为字典或变量,python,function,dictionary,Python,Function,Dictionary,我试图在python中创建一个函数,用自定义名称创建字典。我目前使用的代码如下所示: def PCreate(P): P = {} print('Blank Party Created') 我遇到的问题是,每当我使用该函数时,无论我为p写了什么,例如: PCreate('Party1') 它创建了一个名为“p”的空白字典。有没有办法让它创建一个名为Party1的字典?看起来您对变量名、字符串和对象如何与Python交互感到困惑。当你有函数P创建(P)时,你是说当函数被调用时,
def PCreate(P):
P = {}
print('Blank Party Created')
我遇到的问题是,每当我使用该函数时,无论我为p写了什么,例如:
PCreate('Party1')
它创建了一个名为“p”的空白字典。有没有办法让它创建一个名为Party1的字典?看起来您对变量名、字符串和对象如何与Python交互感到困惑。当你有函数P创建(P)时,你是说当函数被调用时,它将接受参数,在函数中,参数将被调用P。这意味着如果你有函数
def func(P):
print(P)
叫它三次
func('two words')
func(4)
func([3, 'word'])
您将获得以下输出:
two words
4
[3, 'word']
这是因为参数p
在Python中没有显式类型。因此,当您使用参数'Party1'
调用函数时,值如下所示
def PCreate(P):
# P is currently 'Party1'
P = {}
# P no longer is Party1, and now references {}
...
因此,您没有将{}
赋值给名为Party1
的变量,而是用一个新的空dict重写了局部变量p
我认为您可能不想做您正在做的事情,但有关使用字符串变量作为其名称设置变量的更多信息,请参阅
我建议您创建一个返回自定义词典的函数,并将返回的值分配给自定义名称
def new_custom_dict():
my_dict = {} # Pretend this is somehow custom
return my_dict
Party1 = my_custom_dict()
如果您需要将新词典的引用键存储在字符串中,那么您很幸运,因为这就是词典的用途
您可以首先创建一个字典,用于存储自定义命名字典:
dictionaries = {}
当您想要添加具有自定义名称的新词典时,调用此函数
def insert_new_dictionary(dictionaries, dictionary_name):
dictionaries[dictionary_name] = {}
e、 g
在函数的第一行中,您将覆盖参数
p
,这将给您留下两个可通过dictionaries['Party1']
和dictionares['Party2']
访问的词典。那么你还期望发生什么?对不起。我对python非常陌生,我仍在试图弄清楚事情是如何工作的。你能解释一下有人会如何解决这个问题吗?读了这篇文章,我想他是在问如何从用户那里得到一个变量名并给它赋值。@abhikrishnan这就是我回答的后半部分的地址,这正是他想要的
insert_new_dictionary(dictionaries, 'Party1')
insert_new_dictionary(dictionaries, 'Party2')