如何在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)时,你是说当函数被调用时,

我试图在python中创建一个函数,用自定义名称创建字典。我目前使用的代码如下所示:

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')