前言
程序員的日常聯繫,提高問題處理能力。
目錄
正文
今天主要練習的是
解壓序列賦值給多個變量
問題
現在有一個包含N 個元素的元組或者是序列,怎樣將它裏面的值解壓後同時賦值
給N 個變量?
解決方案
任何的序列(或者是可迭代對象)可以通過一個簡單的賦值語句解壓並賦值給多
個變量。唯一的前提就是變量的數量必須跟序列元素的數量是一樣的。
例子
首先是一個簡單的純數字序列分配
all1=(3,5,7)
x,y,z=all1
print("x=",x,"\n","y=",y,"\n","z=",z,"\n")
x= 3
y= 5
z= 7
接下來是一個複合的元素提取
data2= [ 'Bob', 100, 123, (2018, 12, 21) ]
name,grades,number,date=data2
print(name)
print(grades)
print(number)
print(date)
Bob
100
123
(2012, 12, 21)
討論:如果等式兩邊的數目不同會怎麼樣?
all1=(3,5,7)
x,y,z,p=all1
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-17-2ac358487924> in <module>
1 all1=(3,5,7)
----> 2 x,y,z,p=all1
ValueError: not enough values to unpack (expected 4, got 3)
s='hello world'
a,b,c=s
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-11-5bbde3ba3bcf> in <module>
1 s='hello world'
----> 2 a,b,c=s
ValueError: too many values to unpack (expected 3)
實驗表明,這樣會引起異常,那如果出現不要的元素該怎麼辦呢?
_,b,_=all1
print(b)
print(_)
5
7
用一個簡單的變量代替咯。