序列解包(sequence unpacking)是python中非常重要和常用的乙個功能,可以使用非常簡潔的形式完成複雜的功能,大幅度提高了**的可讀性,減少了程式設計師的**輸入量。例如,可以使用序列解包功能對多個變數同時進行賦值。
>>> x, y, z = 1, 2, 3 #多個變數同時賦值
>>> v_tuple = (false, 3.5, 'exp')
>>> (x, y, z) = v_tuple
>>> x, y, z = v_tuple
>>> x, y, z = range(3)#可以對range物件進行序列解包
>>> x, y, z = map(str, range(3)) #使用迭代物件進行序列解包
序列解包也可以用於列表、字典、enumerate物件、filter物件等等,但是對字典使用時,預設是對字典「鍵」進行操作,如果需要對「鍵:值」對進行操作,需要使用字典的items()方法說明,如果需要對字典「值」進行操作,則需要使用字典的values()方法明確指定。下面的**演示了列表與字典的序列解包操作:
>>> a = [1, 2, 3]
>>> b, c, d = a #列表也支援序列解包的用法
>>> x, y, z = sorted([1, 3, 2]) #sorted()函式返回排序後的列表
>>> s =
>>> b, c, d = s.items()
>>> b
('c', 3)
>>> b, c, d = s #使用字典時不用太多考慮元素的順序
>>> b
'c'>>> b, c, d = s.values()
>>> print(b, c, d)
1 3 2
使用序列解包可以很方便地同時遍歷多個序列。
>>> keys = ['a', 'b', 'c', 'd']
>>> values = [1, 2, 3, 4]
>>> for k, v in zip(keys, values):
print(k, v)
a 1b 2
c 3d 4
下面**演示了對內建函式enumerate()返回的迭代物件進行遍歷時序列解包的用法:
>>> x = ['a', 'b', 'c']
>>> for i, v in enumerate(x):
print('the value on position is '.format(i,v))
the value on position 0 is a
the value on position 1 is b
the value on position 2 is c
下面對字典的操作也使用到了序列解包:
>>> s =
>>> for k, v in s.items(): #字典中每個元素包含「鍵」和「值」兩部分
print(k, v)
a 1c 3
b 2另外,序列解包還支援下面的用法:
>>> print(*[1, 2, 3], 4, *(5, 6))
1 2 3 4 5 6
>>> *range(4), 4
(0, 1, 2, 3, 4)
>>>
>>> }
python 序列解包的多種形式及用法解析
是python中非常重要和常用的乙個功能,可以使用非常簡潔的形式完成複雜的功能,大幅度提高了 的可讀性,減少了程式設計師的 輸入量。例如,可以使用序列解包功能對多個變數同時進行賦值。x,y,z 1,2,3 多個變數同時賦值 v tuple false,3.5,exp x,y,z v tuple x,...
20 python的函式返回值的多種形式
注意一點就是我們python的函式return之後,比方說它定義了乙個區域性變數,當出了這個函式,這個區域性變數的引用計數會減1,在c語言當 了函式作用域的話區域性變數是直接被銷毀的,而我們python並沒有區域性變數這個概念,我們都是引用,所以只要出了作用域,引用就會減1。那麼問題就來了,減1是不...
python 序列解包
當函式或方法返回元組時,將元組中值賦給變數序列中的變數,這個過程就叫做序列解包。1 序列1,2,3被打包到元組values中 values 1,2,3 type values values 1,2,3 2 序列解包,元組values中的值分別被賦給變數序列中的x,y,z x,y,z values p...