关于Python求值顺序的问题

问题描述 投票:0回答:2

我正在学习 Python,练习之一是对数组中的值重新排序

x = ['a', 'b', 'c']

x = ['c', 'a', 'b']

解决办法是

x.append(x.pop(0))

我的问题是,由于

x.pop(0)
位于
x.append()
的括号内,那么
append()
如何知道
x[0]
的值是多少,因为
pop()
方法删除了它,因为首先评估括号内的表达式?我的直觉告诉我它不应该起作用,因为没有附加价值,但它确实起作用。我想了解为什么。

希望我的问题有意义。

python
2个回答
1
投票

pop
方法返回它删除的元素,因此
x.append(x.pop(0))
相当于:

removed_element = x.pop(0)
x.append(removed_element)

0
投票

pop
方法返回弹出的值。因此,评价变成

x.append('a')
© www.soinside.com 2019 - 2024. All rights reserved.