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

first, seconde, *rest = sequence

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

函数接收不确定参数

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#!/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(123, a='A')

打印结果:

1
2
3
4
5
6
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 序列与映射的解包操作-乾颐堂

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

  2. Python_序列与映射的解包操作

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

  3. Ruby中星号打包解包操作

    Ruby中可以使用一个星号*和两个星号**完成一些打包.解包操作,它们称为splat操作符: 一个星号:以数组为依据进行打包解包(参考文章) 两个星号:以hash为依据进行打包解包(参考文章) 两个星 ...

  4. Python 中星号作用:解包&打散

    python中’*’和’**’的使用分两个方面,一个是计算,另一个是参数传递过程中元素的打包和解包.  计算方面 ‘*’和’**’在python中最常见的作用分别是‘相乘’和‘乘幂’,如下: > ...

  5. Python小技巧:使用*解包和itertools.product()求笛卡尔积

    [问题] 目前有一字符串s = "['a', 'b'],['c', 'd']",想把它分开成为两个列表: list1 = ['a', 'b'] list2 = ['c', 'd'] ...

  6. Python小技巧:使用*解包和itertools.product()求笛卡尔积(转)

    leetcode上做提示时候看到有高人用这个方法解题 [问题] 目前有一字符串s = "['a', 'b'],['c', 'd']",想把它分开成为两个列表: list1 = [' ...

  7. python中收集函数的解包问题

    收集参数的解包问题 - 把参数放入list或者字典中,直接把list/dict中的值放入收集参数中- 语法:参照案例 # 收集参数的问题 def stu(*args): print("=&q ...

  8. python——序列 & 集合 & 映射

    列表 & 元组 & 字典 & 集合 序列 序列: 每个元素可以是任何类型(也可以是序列),每个元素被分配一个序号(从0开始)(序号,也叫索引,表示元素的位置) Python中的 ...

  9. python学习 —— python3简单使用pymysql包操作数据库

    python3只支持pymysql(cpython >= 2.6 or >= 3.3,mysql >= 4.1),python2支持mysqldb. 两个例子: import pym ...

随机推荐

  1. 2016-2017-20155329 《Java程序设计》第5周学习总结

    学号 2016-2017-20155329 <Java程序设计>第5周学习总结 教材学习内容总结 Java中所有错误都会被打包为对象,运用try.catch,可以在错误发生时显示友好的错误 ...

  2. 个人集群部署hadoop 2.7 + hive 2.1

    环境:centos 6.6 x64 (学习用3节点) 软件:jdk 1.7 + hadoop 2.7.3 + hive 2.1.1 环境准备: 1.安装必要工具 yum -y install open ...

  3. 【蓝桥杯单片机11】单总线温度传感器DS18B20的基本操作

    [蓝桥杯单片机11]单总线温度传感器DS18B20的基本操作 广东职业技术学院 欧浩源 单总线数字温度传感器DS18B20几乎成了各类单片机甚至ARM实验板的标配模块来,在蓝桥杯的往届省赛和国赛中,这 ...

  4. ES6的优雅方法

    1.箭头函数 // ES5 var selected = allJobs.filter(function (job) { return job.isSelected(); }); // ES6 var ...

  5. c语言学习笔记.链表.

    链表: 链表单个节点的数据结构.链表的实现主要依靠结构体和指针. 头指针(head)指向链表的第一个节点,然后第一个节点中的指针指向下一个节点,然后依次指到最后一个节点,这样就构成了一条链表. str ...

  6. 动态SQL中变量赋值

    在动态SQL语句中进行变量的值绑定比较麻烦,这儿做个记录 declare @COUNT int,@sql nvarchar(max) set @sql = 'select @COUNT = count ...

  7. 20165230 《Java程序设计》实验四 Android程序设计实验报告

    20165230 <Java程序设计>实验四 Android程序设计实验报告 一.实验报告封面 课程:Java程序设计 班级:1652班 姓名:田坤烨 学号:20165230 成绩: 指导 ...

  8. 2016 最佳 Linux 发行版排行榜【转】

    转自:http://www.linuxstory.org/the-best-linux-distros-of-2016/?utm_source=tuicool&utm_medium=refer ...

  9. nanosleep()

    函数原型 #include <time.h> int nanosleep(const struct timespec *rqtp, struct timespec *rmtp);   描述 ...

  10. 从Runoob的Django教程学到的

    Windows 10家庭中文版,Python 3.6.4,Django 2.0.3 这个月开始学习Django,从网上找到了RUNOOB.COM网站找到了一份Django教程,在“认真”学习之后,初步 ...