Python 在dict()语句中是否禁止某些单词作为键?

Python 在dict()语句中是否禁止某些单词作为键?,python,dictionary,Python,Dictionary,因此,当我完成将用户时间字符串转换为秒的函数后,我非常激动,决定用以下语句扩展转换字典: dict(ys=1e-24, zeptoseconds=1e-21, zs=1e-21, attoseconds=1e-18, as=1e-18) 这是失败的。我可以分配bs=1e-18,但是如果我分配as=1e-18它会显示SyntaxError:invalid syntax,因此我尝试逃避a,但没有运气 字典键中有禁止的单词吗?,因为在python中是保留单词 >>as=10 文件“”,第1行 as=

因此,当我完成将用户时间字符串转换为秒的函数后,我非常激动,决定用以下语句扩展转换字典:

dict(ys=1e-24, zeptoseconds=1e-21, zs=1e-21, attoseconds=1e-18, as=1e-18)
这是失败的。我可以分配
bs=1e-18
,但是如果我分配
as=1e-18
它会显示
SyntaxError:invalid syntax
,因此我尝试逃避
a
,但没有运气


字典键中有禁止的单词吗?

,因为在python中
是保留单词

>>as=10
文件“”,第1行
as=10
^
SyntaxError:无效语法
但是,可以将其用作dict键,如下所示:

d={“as”:10}
如果您对python中出现的
as
感到好奇:

import json.load as loadjson

with open("myinputfile.json", "r") as infile:
    data = loadjson(infile)

as
是python中的保留字

>>as=10
文件“”,第1行
as=10
^
SyntaxError:无效语法
但是,可以将其用作dict键,如下所示:

d={“as”:10}
如果您对python中出现的
as
感到好奇:

import json.load as loadjson

with open("myinputfile.json", "r") as infile:
    data = loadjson(infile)

字典键是字符串,没有禁止值

但是有些保留字不能用作变量,因此如果任何键都是保留字,则不能使用该语法创建字典
as
保留在
with
语句中使用

相反,使用字典文本

d = {'ys': 1e-24, 'zeptoseconds': 1e-21, 'zs': 1e-21, 'attoseconds': 1e-18, 'as':1e-18}

字典键是字符串,没有禁止值

但是有些保留字不能用作变量,因此如果任何键都是保留字,则不能使用该语法创建字典
as
保留在
with
语句中使用

相反,使用字典文本

d = {'ys': 1e-24, 'zeptoseconds': 1e-21, 'zs': 1e-21, 'attoseconds': 1e-18, 'as':1e-18}
字典里有禁词吗

不可以。您可以使用任何字符串作为字典键

>>> {"as": 1}
{'as': 1}
您不能在函数调用语法中使用语法关键字,因为这会混淆解析器,而这并不特定于调用
dict
。在任何函数调用中,不能将以下字符串用作关键字:

>>> import keyword
>>> for kw in keyword.kwlist:
...     print(kw)
... 
False
None
True
__peg_parser__
and
as
assert
async
await
break
class
continue
def
del
elif
else
except
finally
for
from
global
if
import
in
is
lambda
nonlocal
not
or
pass
raise
return
try
while
with
yield
字典里有禁词吗

不可以。您可以使用任何字符串作为字典键

>>> {"as": 1}
{'as': 1}
您不能在函数调用语法中使用语法关键字,因为这会混淆解析器,而这并不特定于调用
dict
。在任何函数调用中,不能将以下字符串用作关键字:

>>> import keyword
>>> for kw in keyword.kwlist:
...     print(kw)
... 
False
None
True
__peg_parser__
and
as
assert
async
await
break
class
continue
def
del
elif
else
except
finally
for
from
global
if
import
in
is
lambda
nonlocal
not
or
pass
raise
return
try
while
with
yield

谢谢,我找到了一个解决办法,做了这个{'as':1e-18},然后合并字典。所以允许将“as”作为键,只是在dict()语句中不允许。似乎是语法分析器的错误。@惊奇狗-这是预期的行为,不是错误谢谢,我找到了一个解决办法,方法是这样做{'as':1e-18},然后合并字典。因此允许将“as”作为键,只是不允许在dict()语句中使用。似乎是语法分析器的错误。@惊奇狗-这是预期的行为,而不是错误。可能值得指出的是,
as
是这里的问题,因为它在python中有特殊的含义。可能值得指出的是,
as
是这里的问题,因为它在python中有特殊的含义。感谢您教我有关
关键字
模块的知识!感谢您教我有关
关键字
模块的知识!