Python 序列与映射的解包操作

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

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

时间: 2024-08-02 10:38:24

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的参数类型是字典. 下面是一个必选参数,可变参数,关键字参数的示例:

Python 中星号作用:解包&amp;打散

python中’*’和’**’的使用分两个方面,一个是计算,另一个是参数传递过程中元素的打包和解包.  计算方面 ‘*’和’**’在python中最常见的作用分别是‘相乘’和‘乘幂’,如下: >>> a = 2 >>> b = 3 >>> c = 5*6 >>> d = 4**3 >>> e = a*b >>> f = a**b 传递.打包.解包方面 函数的可变参数 对函数传递的参数进行打包(成元组

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

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

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中的可变、不可变对象和赋值技巧序列解包

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

Python中的参数解包:`*`表达式和 `**`表达式

目录 1.参数解包:方法调用中的*表达式和**表达式 2.参数解包:方法定义中的*表达式和**表达式 3.在元组,列表,集合和字典中解包 4.Extended Unpacking:赋值表达式左边的*表达式 1.参数解包:方法调用中的*表达式和**表达式 如果语法*表达式出现在函数调用中,则该表达式必须是可迭代的. 这些可迭代集合的元素被视为附加的位置参数. 对于调用f(x1, x2, *y, x3, x4),如果y等于序列[y1,...,yM],则等效于调用f(x1, x2, y1, ...,

Python学习之通用序列类型数据详解

本文和大家分享的主要是python通用序列类型数据的相关操作,一起来看看吧,希望对大家学习python有所帮助. Python的序列,Python有6种内建的序列,包括:列表.元组.字符串.Unicode字符串.buffer对象和xrange对象.其中最为常用的是Python的列表和元组. Python的序列 Python有6种内建的序列,包括:列表.元组.字符串.Unicode字符串.buffer对象和xrange对象.其中最为常用的是Python的列表和元组. Python序列的应用 Pyt

序列解包

先看示例: 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