Python 序列与映射解包示例

前端之家收集整理的这篇文章主要介绍了Python 序列与映射解包示例前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
对python这个高级语言感兴趣的小伙伴,下面一起跟随编程之家 jb51.cc的小编两巴掌来看看吧!

解包就是把序列或映射中每个元素单独提取出来,序列解包的一种简单用法就是把首个或前几个元素与后面几个元素分别提取出来,例如:

first,seconde,*rest = sequence

如果sequence里至少有三个元素,那么执行完上述代码后,first == sequence[0],second == sequence[0],rest == sequence[2:]。

函数接收不确定参数

函数的参数不确定时,可以使用*args 和**kwargs,*args 没有key值,**kwargs有key值。

  1. # @param Python 序列与映射的解包操作
  2. # @author 编程之家 jb51.cc|jb51.cc
  3. #!/usr/bin/python
  4. # -*- coding:utf-8 -*-
  5. import sys
  6. reload(sys)
  7. sys.setdefaultencoding('utf-8')
  8. '''
  9. 函数的参数不确定时,可以使用*args 和**kwargs,*args 没有key值,**kwargs有key值。
  10. '''
  11. def fun_var_args_kwargs(data1,*args,**kwargs):
  12. print 'data1:',type(data1),data1
  13. print '*args:',type(args),args
  14. print '**kwargs:',type(kwargs),kwargs
  15. fun_var_args_kwargs('this is data1',2,'3',4.0,k1='value1',k2='value2')
  16. print '-------------'
  17. def print_args(*args,**kwargs):
  18. print args.__class__.__name__,args,kwargs.__class__.__name__,kwargs
  19. print_args()
  20. print_args(1,3,a='A')
  21. # End www.jb51.cc

打印结果:

  1. data1: <type 'str'> this is data1
  2. *args: <type 'tuple'> (2,4.0)
  3. **kwargs: <type 'dict'> {'k2': 'value2','k1': 'value1'}
  4. -------------
  5. tuple () dict {}
  6. tuple (1,3) dict {'a': 'A'}
  7. # End www.jb51.cc

猜你在找的Python相关文章