Python变量类型在同一行发生更改



这可能是一个简单的问题,但我总是对此感到困惑。这是代码

routes = {}
for line in file:
match = gig_pattern.search(line)  
if match:
intf = match.group(2)  
routes[intf] = routes[intf]+1 if intf in routes else 1

在等号routes[intf]的左边,表示在routes字典中添加一个项。在等号的右边,routes[intf]怎么能变成一个整数?欢迎任何解释或现有解释的url。

区别不是方括号,而是等号。

方括号告诉python在列表或字典中的某个位置查找值:

> list_or_dict[key]
1

就其本身而言,像这样,python会返回值,或者在找不到值时抛出错误

但是,如果您使用等号,python会将等号右侧的值分配给左侧字典中指定的键:

> list_or_dict[key] = 2
> list_or_dict[key]
2

因此,等号的存在决定了方括号是获取值还是赋值。

最新更新