引入:
实现链表翻转
class Solution:
def reverseList(self, head: ListNode) -> ListNode:
cur = head
prev = None
while cur:
cur.next,prev,cur = prev,cur,cur.next
return prev
初入Python时,常按着C++的思维去想,然后被如下赋值给搞懵逼了。
cur.next,prev,cur = prev,cur,cur.next
那为什么这样赋值能产生我们需要的效果?我们来简单了解下Python的变量赋值
变量赋值
赋值运算符
Python 语言中, 等号(=)是主要的赋值运算符。
anInt = 11
aString = 'leacoder'
aFloat = -3.1415
aList = ["a", "b", "c", "d"];
当然还有其他基本数据类型 可以参见 Python3 基本数据类型
注意,赋值并不是直接将一个值赋给一个变量,尽管可能根据其它语言编程经验认为应
该如此(比如我T_T)。在 Python 语言中,对象是通过引用传递的。在赋值时,不管这个对象是新创建的,还是一个已经存在的,都是将该对象的引用(并不是值)赋值给变量。
多重赋值
x=y=z=0
一个值为 0 的整数对象被创建,该对象的同一个引用被赋值给 x、y 和z 。也就是将一个