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

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), data1print '*args:', type(args), argsprint '**kwargs:', type(kwargs), kwargsfun_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__, kwargsprint_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'}

Python 序列与映射的解包操作相关推荐

  1. python函数映射教学,Python 序列与映射的解包操作

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

  2. python解包操作_python基础篇笔记02 文件操作 序列解包**星号语法

    文件的数据是存放于硬盘上的,因而只存在覆盖.不存在修改这么一说,我们平时看到的修改文件, 都是模拟出来的效果,具体的说有两种实现方式: 方式一:将硬盘存放的该文件的内容全部加载到内存,在内存中是可以修 ...

  3. python中的解包操作

    在看别人写的python代码的时候,有时候会看到在变量前面加上一个*或者是**,上网找了一下相关的资料发现这些星号原来是python中的解包操作,相当于将一个容器中的元素取出来然后分配给不同的变量,下 ...

  4. python 解包_【源码解析】python解包操作一文完全理解

    解包是如何操作? >>> a, b = [1, 2] # 以下为此解包操作的字节码 0 LOAD_CONST 1 (1) 2 LOAD_CONST 2 (2) 4 BUILD_LIS ...

  5. python序列类型-python序列类型种类详解

    python序列类型包括哪三种 python序列类型包括:列表.元组.字典 列表:有序可变序列 创建:userlist = [1,2,3,4,5,6] 修改:userlist[5] = 999 添加: ...

  6. python解包操作_Python编程使用*解包和itertools.product()求笛卡尔积的方法

    本文实例讲述了Python编程使用*解包和itertools.product()求笛卡尔积的方法.分享给大家供大家参考,具体如下: [问题] 目前有一字符串s = "['a', 'b'],[ ...

  7. python解包操作_python解包如何使用?

    对于一堆资料,我们可以把它分给不同的人使用,这个分散的过程,我们可以看成是解包方法是实现.当然实际python解包的使用会相对复杂一点,我们会对常见的列表.函数等进行操作.下面我们就Python解包的 ...

  8. python中的装包与解包*,**

    学习过程中遇到了*解包的过程,很感兴趣,于是实验一番, a = (1, 2, 3, 4, 5, 6) b = [2, 3, 4, 5, 5, 6] c = {"name": 'zh ...

  9. python序列类型映射类型_Python的数据访问模型与序列介绍

    前面小节介绍了 Python 的 Dict 字典类型,这只是 Python 众多数据类型的其中一个.那么接下来在这个小节里,我们看看 Python 还有哪些数据类型. Python的数据访问模型:直接 ...

最新文章

  1. python comprehensions_python 列表生成式 List Comprehensions
  2. @echo 与 echo的区别
  3. java mvc 实际分层_SpringMVC体系分层模式原理图解
  4. js继承之借用构造函数继承
  5. 技术人员职业生涯的红色警报
  6. linux 丢包多少正常_Linux 问题故障定位,看看这篇
  7. You have unstaged changes.
  8. 智慧水务、智慧泵房、水厂监控、营收管理、DMA漏损、GIS系统、维护管理、档案管理、仓库管理、水质监控、数据中心、指挥调度中心、消防栓、管网、供水、水质、水厂调度、加压泵站、库存调拨、物料申请
  9. 查看文件md5_了解 | Mongodb 文件存储之 GridFs
  10. Open_source_tools
  11. Eclipse SVN还原文件到历史版本详解
  12. ios12xen html插件,iOS 12.4 越狱后实用插件推荐(二)
  13. 【neo4j】知识图谱实战---构建红楼梦知识图谱
  14. C语言:数组数据移动
  15. Android 类似360 系统启动时间提示
  16. DOS命令:format
  17. Double转BigDecimal并保留两位小数出现异常: java.lang.ArithmeticException: Rounding necessary
  18. tomcat上部署的solr的移植以及数据的备份与恢复
  19. 物联网之STM32开发四(中断系统)
  20. JS一个元素怎么绑定多个事件

热门文章

  1. Aliyun OSS Nginx proxy module(阿里云OSS Nginx 签名代理模块)
  2. EventSource
  3. 算法-动态规划(01背包)
  4. 007--C++动态内存(数组)
  5. 计算机位数与内存相关,弄懂电脑的各种位数、内存、存储
  6. httpsrequest java_java如何通过https返回数据
  7. 计算机网络实验类型有哪些,北航研究生计算机网络实验_实验三 网络层实验
  8. mac版smali2java_Android反编译apk并重新打包签名(Mac环境)
  9. 2013年人人校园招聘笔试题
  10. Swift 协议protocol