python 多重賦值問題

2021-10-04 13:36:09 字數 1095 閱讀 5161

多重賦值有兩種方式

一,變數賦值->右邊先完成計算,然後在賦值給左邊變數。

x,y = y,x+y

###等價於##

m = y

n = x+y

x = m

y = n

常用例項:

資料交換

a,b = 1,2

a,b = b,a

# a->2 b ->1

二,列表等多重賦值

l = [1,2,'3','4']

a,b,c,d = l

# int,int,str,str

變數個數必須等於list(tuple,dic)的長度;字典多重賦值時,賦予的是key;元組(字典)賦值時,有兩種情況。

dic = 

a,b = dic # a->'name'

a = dic # a->

如果當變數個數與list長度不同時,可以考慮使用*.

l  = [1,2,'3']

a,*b = l

# a = 1 ,b =[2,'3']

補充一點,關於可變型別的巢狀多重賦值問題。

下面**是想將 index= 0 位置的元素1, 換到idnex=1的位置處,但是一種正確,一種錯誤。主要是因為第4行**中,先將nums[index]  改變了,列表是可變型別,所以即刻就改變了。所以,盡量避免這樣的多重巢狀型別的賦值,以免出現錯誤。

nums = [1,2,4,4,0]

index = 0

nums[nums[index]],nums[index] = nums[index],nums[nums[index]] #正確

nums[index],nums[nums[index]] = nums[nums[index]],nums[index] #錯誤 ->死迴圈

#下面最好

temp = nums[index]

nums[index] = nums[temp]

nums[temp] = temp

python多重賦值技巧

多重賦值技巧是一種快捷方式,讓你在一行 中,用列表中的值為多個變數賦值。所以不必像這樣 cat fat black loud size cat 0 color cat 1 disposition cat 2 而是輸入下面的 cat fat black loud size,color,disposit...

Python多重賦值技巧

1 多重賦值技巧是一種快捷方式,讓你在一行 中,用列表中的值為多個變數賦值。所以不必像這樣 entrepreneur jackma ponyma leijun alibaba entrepreneur 0 tencent entrepreneur 1 xiaomi entrepreneur 2 而可...

關於python多重賦值的小問題

前言 今天無意中發現在python中的乙個多重賦值的小問題,自己一開始是比較簡單化的理解了這個多重賦值操作的概念,所以導致在一道實現斐波那契數列的 中,發現了自己的問題,順www.cppcns.com便記錄下吧,當作是學習總結。首先是python的多重賦值操作,先用乙個直觀的 來看 a,b 0,1 ...