我正在看一个我不理解的简单代码。我认为这与操作优先级相同,但是我不太清楚。
stack = ["apple", 1]
heap = {}
heap[stack.pop()] = stack.pop()
在JavaScript中,此代码的结果为heap = {1:"apple"}
。
但是在python中,结果为heap = {"apple" : 1}
。
我想知道为什么Python有这些结果。
答案 0 :(得分:-2)
您逐步执行的代码可以帮助您了解发生了什么
In [1]: stack = ["apple", 1]
In [2]: stack
Out[2]: ['apple', 1]
In [3]: pop1 = stack.pop()
In [4]: pop1
Out[4]: 1
In [5]: stack
Out[5]: ['apple']
In [6]: pop2 = stack.pop()
In [7]: pop2
Out[7]: 'apple'
In [8]: stack
Out[8]: []
In [9]: heap = {}
In [10]: heap
Out[10]: {}
In [11]: heap[pop2] = pop1
In [12]: heap
Out[12]: {'apple': 1}
如您所见,pop
方法首先删除stack
列表的最后一项并返回,然后倒数第二项。