Python:SyntaxError:keywordcan';这不是一种表达

Python:SyntaxError:keywordcan';这不是一种表达,python,ios,dictionary,Python,Ios,Dictionary,不确定问题出在哪里,我尝试使用多个变量名称来表示这个dict,但出现了相同的错误: >>> hostname=dict('172.16.1.75'='N-Switch', '172.16.1.76' = 'W-Switch', '172.16.1.77' = 'E-Switch') SyntaxError: keyword can't be an expression 我试图为脚本创建一个字典,通过调用资产的IP地址作为密钥来更改资产上的主机名。知道问题出在哪里吗?我不确定您

不确定问题出在哪里,我尝试使用多个变量名称来表示这个dict,但出现了相同的错误:

>>> hostname=dict('172.16.1.75'='N-Switch', '172.16.1.76' = 'W-Switch', '172.16.1.77' = 'E-Switch')
SyntaxError: keyword can't be an expression

我试图为脚本创建一个字典,通过调用资产的IP地址作为密钥来更改资产上的主机名。知道问题出在哪里吗?

我不确定您是否使用了有效的语法,请尝试:

hostname={'172.16.1.75':'N-Switch', '172.16.1.76' : 'W-Switch', '172.16.1.77' : 'E-Switch'}

正如错误所说,参数不能是字符串。解决方案是使用
{}
构造函数创建字典:

hostname={'172.16.1.75':'N-Switch', '172.16.1.76' : 'W-Switch', '172.16.1.77' : 'E-Switch'}

如果希望使用
dict
构造函数,则需要将有效参数作为键(而不是字符串)提供。

初始化dict的常用格式如下

hostname=dict([('172.16.1.75','N-Switch'), ('172.16.1.76','W-Switch'), ('172.16.1.77', 'E-Switch')])
或者更简单地说,正如Carles Mitjans在其回答中所给出的(似乎已被删除,因此在此处添加了要点,以方便<1万用户)

事实上,这是python中使用字典的更常见的方式。只有在处理动态列表时,才会使用内置的
dict


字典理解也是可能的。

要使用
dict
函数,必须像传递函数参数一样传递键,这意味着它们必须是有效的索引器。您只能使用有效的Python标识符作为关键字参数(包括
dict()
callable)。改用
{…}
dict显示。另请参见:如果我想用
dict
实现这一点,是否有人可以提供一个示例?我认为您缺少元组的父容器是的,谢谢您指出。
 hostname={'172.16.1.75':'N-Switch', '172.16.1.76' : 'W-Switch', '172.16.1.77' : 'E-Switch'}