Python 元组拆包示例(Tuple Unpacking)

1.元组?

元组的特点:

相当于不可变得列表;

可用于没有字段名的记录。

pythn里的元组就相当于C语言里的数组,是不可变的,但是也可以容纳不同类型的元素,也是容器的一种。

>>> t = (1,2,'a','b','c')
>>> t
(1, 2, 'a', 'b', 'c')
>>> type(t)
<class 'tuple'>

元组主要有两个方法:

index():获取指定元素在元组内的下标

count():统计指定元素在元组内出现的次数

元组的定义和结构和列表很像,但是使用起来比较简单,元组的元素用‘()'包含起来。

其实在元组的使用过程中有一些比较方便和实用的小方法,接下来就做一个简单的介绍!

2.元祖拆包

元祖拆包就是将元组中的元素分别赋给变量:

>>> info = ('xian','2018','7.17')
>>> info
('xian', '2018', '7.17')
>>> city,year,date = info
>>> city
'xian'
>>> year
'2018'
>>> date
'7.17'

拆包就相当于把元组中的元素拆分成单个的元素,可以用这些被拆分了的元素来完成想要做的事!

比如,可以十分方便的输出元组内的值:

>>> print('%s\n%s\n%s\n'%info)
xian
2018
7.17

还可以玩的更六一点哦:

>>> infos = [info,('jian','2018','7.22'),('zhengzhou','2018','9.1')]
>>> infos
[('xian', '2018', '7.17'), ('jian', '2018', '7.22'), ('zhengzhou', '2018', '9.1')]
>>> for i in infos :
  print('%s %s %s'%i)

xian 2018 7.17
jian 2018 7.22
zhengzhou 2018 9.1

当然,还有更加666的用法哦,有时候我们可以多个参数写进一个元组里,然后把这个元组当做相应函数的参数列表穿进去:

先介绍一个python的内建函数:divmod(a,b) a,b是两个数,这个函数返回一个元组,这个元组为(a//b,a%b),即返回a除以b,a%b的结果组成的元组。 现在我们就将一个元组作为divmod的参数传进去:

>>> a = (20,8)
>>> divmod(*a)
(2, 4)
>>> 

不过我们注意到,虽然我们将参数放进了一个元组里,但是在作为参数列表传进去的时候在元组名前要加一个 ‘ * ' ! 当我只需要其中几个元素的时候怎么办呢?

>>> _,_,date = info
>>> date
'7.17'

这里‘ _ '就相当于一个占位符,可以抵消掉我们不想要的元素! 这里又有一个问题了,当元组内的元素太多,而我又只要其中几个元素的值,总不能用很多变量去抵消我不要的元素吧?当然不用!

>>> city,*rest = info
>>> city
'xian'
>>> rest
['2018', '7.17']

在这里我们用*var-name的方法代表剩余的元素,在python里常用这种方法来代表不起确定数量参数!

>>> a,b,*rest,c,d = range(10)
>>> a
0
>>> b
1
>>> c
8
>>> d
9
>>> rest
[2, 3, 4, 5, 6, 7]

在python里有一个很方便交换变量值的方法:

>>> a = 10
>>> b = 20
>>> a,b = b,a
>>> a
20
>>> b

3.具名元组?

为什么在文章开头说元祖的特点之一是没有字段名记录呢?如果元组里的元素有字段名,那么元组不就是字典,是键-值对了吗?的确,我们一般用的元组中的各个元素是没有字段名的,但是还有一种特殊的元组——具名元组。

具名元组是带有字段名元组,虽然说是元组,但是实际上是类的一种。要想构建一个具名元组,需要使用python里的一个工厂函数:collections.namedtuple(typename, field_names, verbose=False, rename=False) . namedtuple需要两个必要函数,typename是构建的具名元组的元组类型名,field_names是这个具名元组类里的各个字段的名字,名字之间用空格或者逗号隔开,verbose若为True则会打印这个类的详细信息,若rename为True则会把field_names中与python关键字冲突或者重复的字段用这个关键字的位置来替代,如:[‘abc', ‘def', ‘ghi', ‘abc']会被转换为 [‘abc', ‘_1', ‘ghi', ‘_3']。

>>>City = namedtuple('City',"country,capital,population")
>>>xian = City('china','beijing','1000w')
>>>> xian
City(country='china', capital='beijing', population='1000w')

从以上代码我们可以看到,我们可以使用namedtuple构建一个类,创建的类就是一个具名元组,在我们初始化一个具名元组的时候就像初始化一个类一样!

这篇Python 元组拆包示例(Tuple Unpacking)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Python元组拆包和具名元组解析实例详解

    前言 在Python中元组是一个相较于其他语言比较特别的一个内置序列类型.有些python入门教程把元组成为"不可变的列表",这种说法是不完备的,其并没有完整的概括元组的特点.除了用作不可变的列表,它还可以用于没有字段名的数据记录.下面的内容就围绕元组作为数据记录属性展开,并介绍带字段名的具名元组函数namedtuple,列表属性不再本文中叙述. 元组对于数据的记录 元组中的每个元素都存放了记录中一个字段的数据,外加这个字段的位置,正是这个位置信息给数据赋予了意义. 下面的一段代码就演

  • Python 元组拆包示例(Tuple Unpacking)

    1.元组? 元组的特点: 相当于不可变得列表: 可用于没有字段名的记录. pythn里的元组就相当于C语言里的数组,是不可变的,但是也可以容纳不同类型的元素,也是容器的一种. >>> t = (1,2,'a','b','c') >>> t (1, 2, 'a', 'b', 'c') >>> type(t) <class 'tuple'> 元组主要有两个方法: index():获取指定元素在元组内的下标 count():统计指定元素在元组内出

  • python元组拆包实现方法

    1.说明 把元组一一对应拆出来,就叫做元组拆包.拆包有个要求,元组中的元素数量必须跟接受这些元素的空挡数一致,否则会报错: tuple_test = (1, 2, 3) a, b = tuple_test # ValueError: too many values to unpack (expected 2) 2.实例 _占位符 使用_占位符可以解决这个问题: tuple_test = (1, 2, 3) a, b, _ = tuple_test 这样就只获取到部分数据了,这在取函数返回值时特别

  • 简单了解python元组tuple相关原理

    这篇文章主要介绍了简单了解python元组tuple相关原理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 元组tuple和列表List类似,元组有如下特点: 1.由一个或者多个数据构成,数据的类型可以不相同也可以相同: 2.元组中的数据需要写在()中括号内部,数据与数据之间用逗号隔开: 3.元组是一个有序的集合,下标索引默认重 0 开始,和字符串类似: 4.元组的数据不能被修改 元组 元组其实也称为只读列表,列表支持的函数元组同样也支持,唯一

  • Python 元组(Tuple)操作详解

    一.创建元组 复制代码 代码如下: tup1 = ('physics', 'chemistry', 1997, 2000);tup2 = (1, 2, 3, 4, 5 );tup3 = "a", "b", "c", "d"; 创建空元组 复制代码 代码如下: tup1 = (); 元组中只包含一个元素时,需要在元素后面添加逗号来消除歧义 复制代码 代码如下: tup1 = (50,); 元组与字符串类似,下标索引从0开始,可以

  • Python 把序列转换为元组的函数tuple方法

    tuple函数功能和list功能很相似,以序列为参数并把它转换为元组 >>> tuple([1,2,3]) (1, 2, 3) >>> tuple('abcd') ('a', 'b', 'c', 'd') 以上这篇Python 把序列转换为元组的函数tuple方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • Python元组 tuple的概念与基本操作详解【定义、创建、访问、计数、推导式等】

    本文实例讲述了Python元组 tuple的概念与基本操作.分享给大家供大家参考,具体如下: 元组 tuple 元组 tuple的定义 元组的创建 元组的元素访问和计数 1. 元组的元素不能修改 2. 元组的元素访问和列表一样,只不过返回的仍然是元组对象. 3. 列表关于排序的方法 list.sorted()是修改原列表对象,元组没有该方法.如果要对元组排 zip 生成器推导式创建元组 元组总结 元组 tuple的定义 列表属于可变序列,可以任意修改列表中的元素.元组属于不可变序列,不能修改元组

  • Python元组常见操作示例

    本文实例讲述了Python元组常见操作.分享给大家供大家参考,具体如下: 不能修改的列表就叫做元组. 1 访问元素 元组是使用圆括号来标识的. 定义好元组后, 我们就可以使用索引来访问其中的元素. nums=(1,2) print(nums[0]) 运行结果: 1 2 不能修改元素 定义好元组后,可以访问,但不能修改: nums=(1,2) nums[0]=11 运行结果: Traceback (most recent call last):   File "<pyshell#3>&

  • 一篇文章带你了解python元组基础

    目录 1. 元组基本知识 1.元组的基本格式和用法 2. 元组操作实例 1.建立元组 2.查找元素:通过元组下标实现. 3.删除元组:对元组的删除时不允许的,可以通过del函数,实现对整个元组对象的删除. 4.统计元素 5.合并元组 6.转换元组 总结 1. 元组基本知识 元组:是不可变的序列,也是一种可以存储各种数据类型的集合,用小括号(())表示与那组的开始和结束,元素之间用半角逗号(,)分隔.不可变指不能对元组对象进行增加元素.变换元素位置.修改元素.删除元素操作.元组中每个元素提供对应的

  • Python元组及文件核心对象类型详解

    元组 元组是不可变类型,以()表示,是任意对象的有序集合,同样是序列的一种,index和count方法分别是取元素,统计元素个数. 语法比如(2,3)就是一个元组.元组与列表如此类似,为何需要重复的类型,主要它提供了不变性,提供了"常数"声明.元组项虽不能修改,但是嵌套里面的列表项还是可以修改的. 文件 open内置函数创建文件对象,通过这个对象对外部文件进行操作.函数有三个参数,第一个文件路径,第二个是打开模式,打开模式有三种:'r'表示读文件,'w'表示写文件,'a'表示打开文件追

随机推荐