Python_序列与映射的解包操作

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

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‘}

时间: 2024-10-29 14:32:22

Python_序列与映射的解包操作的相关文章

Python 序列与映射的解包操作

解包就是把序列或映射中每个元素单独提取出来,序列解包的一种简单用法就是把首个或前几个元素与后面几个元素分别提取出来,例如: first, seconde, *rest = sequence 如果sequence里至少有三个元素,那么执行完上述代码后,first == sequence[0], second == sequence[0], rest == sequence[2:]. 函数接收不确定参数 当函数的参数不确定时,可以使用*args 和**kwargs,*args 没有key值,**kw

序列解包操作

解包操作是把序列(sequence)或映射(map)中的每个元素单独提取出来. 如果sequence为1,2,3,4,5 那么这样操后:one,two,*three = sequence 可以理解为:one==1,two==2,three==(3,4,5) 从上面这段代码可以看到args的参数类型是元组,而kw的参数类型是字典. 下面是一个必选参数,可变参数,关键字参数的示例:

java基础类型包装类与自动打包解包

一基础类型包装类 基础数据类型存放在内存的栈区域,可以通过包装类将基础数据类型转换为引用数据类型,即存储在堆与栈中. 基础数据类型一共有8种,相对应的包装类也有8种.分别是Byte,Short,Integer,Long,Float,Double,Character,Boolean.类 包装类位于java.Lang包中. 1 public class Test1 { 2 3 public static void main(String[] args) { 4 // TODO Auto-genera

关于Python 解包,你需要知道的一切

解包在英文里叫做 Unpacking,就是将容器里面的元素逐个取出来(防杠精:此处描述并不严谨,因为容器中的元素并没有发生改变)放在其它地方,好比你老婆去菜市场买了一袋苹果回来分别发给家里的每个成员,这个过程就是解包.Python 中的解包是自动完成的,例如: >>> a, b, c = [1,2,3] >>> a 1 >>> b 2 >>> c 3 如果列表中有3个元素,那么刚好可以分配给3个变量.除了列表对象可以解包之外,任何可迭

Python中的可变、不可变对象和赋值技巧序列解包

可变对象和不可变对象 在python中一切皆对象.在Python中不存在所谓的值传递调用,一切传递都是对象的引用,也可认为是传址. python中,对象分为可变(mutable)和不可变(immutable)两种类型,元组(tuple).数值型(number).字符串(string)均为不可变对象,而字典型(dictionary)和列表型(list)的对象是可变对象. 不可变对象 见一个例子,分析不可变对象的特点 python内置id()函数,用于返回对象的唯一标识(identity).id()

序列解包

先看示例: x,y,z=1,2,3 x,y=y,x print(x,y,z)#输出为2,1,3 由输出结果看到,x和y的值交换了,在Python中,交换所做的事情叫序列解包或可选迭代解包,即将多个值得序列解开,然后放到变量序列中,例如: nums=(1,2,3) x,y,z=nums print(x,y,z) 可以看到,序列解包后,变量获得了对应得值 再看一个例子: student={'name':'xiaoming','number':110} t=student.popitem() prin

python_解包

1.解包直接把这个元组,list,集合按顺序进行传参,当然字符串也是可以的传参,只要不是key=value的格式都可以 此外:集合也是无序的,最好也不要用集合的方式 备注:解包出了的个数要与传参个数保持一致 #解包--list,元组,集合 def connect(ip,port,username,password): print(ip) print(port) print(username) print(password) info_list=['192.168.1.1',3309,'zhaoz

Java之集合初探(二)Iterator(迭代器),collections,打包/解包(装箱拆箱),泛型(Generic),comparable接口

Iterator(迭代器) 所有实现了Collection接口的容器都有一个iterator方法, 用来返回一个实现了Iterator接口的对象 Iterator对象称作迭代器, 用来方便的实现对容器内的元素的遍历 迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结构.迭代器通常被称为"轻量级"对象,因为创建它的代价小. Java中的Iterator功能比较简单,并且只能单向移动: (1) 使用方法iterator()要求容器返回一个I

MonoTouch 二三事(三)mono mkbundle 打包程序的解包支持

许久以后,这个续上这个系列的第三篇. 玩过mono的可能知道mono有一个工具mkbundle ,可以把mono的运行时与类库与你的程序的依赖程序集都打包成一个可执行文件,在win下为exe文件,例如mandroid.exe,mtouch.exe,在mac下的Mach-O文件,例如mtouch,mtouch-64. 根据他的源代码 https://github.com/mono/mono/tree/master/mcs/tools/mkbundle,我们得到: template_main.c i