Syntax 使用变量在Python中创建字典

Syntax 使用变量在Python中创建字典,syntax,Syntax,使用以下方法创建字典: >>> dict(name = 'Joe') {'name': 'Joe'} 如果我已经有了一个值为“Joe”的变量name,并想将其用作字典中的键,该怎么办? Python选择第一个参数并将其转换为字符串。 为什么不是: >>> dict('name' = 'Joe') {'name': 'Joe'} 也就是说,为什么它不需要引号来生成带有字符串键的字典,而将name视为变量呢?当使用dict(name='Joe')时,name不

使用以下方法创建字典:

>>> dict(name = 'Joe')
{'name': 'Joe'}
如果我已经有了一个值为“Joe”的变量
name
,并想将其用作字典中的键,该怎么办? Python选择第一个参数并将其转换为字符串。 为什么不是:

>>> dict('name' = 'Joe')
{'name': 'Joe'}
也就是说,为什么它不需要引号来生成带有字符串键的字典,而将
name
视为变量呢?

当使用
dict(name='Joe')
时,
name
不是作为变量传递的,而是作为函数
dict
的参数传递的

如果要将变量用作键,可以使用:

name='joe'
dict[name]=“乔”

这将导致一个字典
{'joe':'joe'}

如果您尝试使用键值对初始化python字典,请使用
{}
而不是
dict()

>name='Joe'
>>>my_dict={name:3}
{'Joe':3}
>>>我的名字[名字]=5
>>>我的字典
{'Joe':3,'name':5}

将使用变量
name

的值,您想做什么?@JohnD:实际上是想了解为什么dict()接受不带引号的字符串。。。其他期望str的方法不会让你放弃它。是的
dict(2=1)
给出了语法错误:表达式不能包含赋值,也许你的意思是“==”?这是未定义的行为,python碰巧将其视为字符串,但这不是您应该依赖的。按照我的回答去做,你会没事的。