Python 序列與對映的解包操作

pythontab發表於2014-11-04

解包就是把序列或對映中每個元素單獨提取出來,序列解包的一種簡單用法就是把首個或前幾個元素與後面幾個元素分別提取出來,例如:

first, seconde, *rest = sequence

如果sequence裡至少有三個元素,那麼執行完上述程式碼後,first == sequence[0], second == sequence[0], rest == sequence[2:]。

函式接收不確定引數

當函式的引數不確定時,可以使用*args 和**kwargs,*args 沒有key值,**kwargs有key值。

#!/usr/bin/python
# -*- coding:utf-8 -*-
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
 
'''
當函式的引數不確定時,可以使用*args 和**kwargs,*args 沒有key值,**kwargs有key值。
 
'''
 
def fun_var_args_kwargs(data1, *args, **kwargs):
    print 'data1:', type(data1), data1
    print '*args:', type(args), args
    print '**kwargs:', type(kwargs), kwargs
 
fun_var_args_kwargs('this is data1', 2, '3', 4.0, k1='value1', k2='value2')
 
print '-------------'
 
def print_args(*args, **kwargs):
    print args.__class__.__name__, args, kwargs.__class__.__name__, kwargs
 
print_args()
print_args(1, 2, 3, a='A')

列印結果:

data1: <type 'str'> this is data1
*args: <type 'tuple'> (2, '3', 4.0)
**kwargs: <type 'dict'> {'k2': 'value2', 'k1': 'value1'}
-------------
tuple () dict {}
tuple (1, 2, 3) dict {'a': 'A'}


相關文章