Python元组 tuple的概念与基本操作详解【定义、创建、访问、计数、推导式等】
作者:闲鱼!!! 发布时间:2022-12-08 10:14:45
本文实例讲述了Python元组 tuple的概念与基本操作。分享给大家供大家参考,具体如下:
元组 tuple
元组 tuple的定义
元组的创建
元组的元素访问和计数
1. 元组的元素不能修改
2. 元组的元素访问和列表一样,只不过返回的仍然是元组对象。
3. 列表关于排序的方法 list.sorted()是修改原列表对象,元组没有该方法。如果要对元组排
zip
生成器推导式创建元组
元组总结
元组 tuple的定义
列表属于可变序列,可以任意修改列表中的元素。元组属于不可变序列,不能修改元组中的
元素。因此,元组没有增加元素、修改元素、删除元素相关的方法。
因此,我们只需要学习元组的创建和删除,元组中元素的访问和计数即可。元组支持如
下操作:
索引访问
切片操作
连接操作
成员关系操作
比较运算操作
计数:元组长度 len()、最大值 max()、最小值 min()、求和 sum()等。
元组的创建
通过()创建元组。小括号可以省略。
a = (10,20,30) 或者 a = 10,20,30
如果元组只有一个元素,则必须后面加逗号。这是因为解释器会把(1)解释为整数 1,(1,)
解释为元组。
>>> a = (1)
>>> type(a)
<class 'int'>
>>> a = (1,) #或者 a = 1,
>>> type(a)
<class 'tuple'>
通过 tuple()创建元组
tuple(可迭代的对象)
例如:
b = tuple() #创建一个空元组对象
b = tuple("abc")
b = tuple(range(3))
b = tuple([2,3,4])
总结:
tuple()可以接收列表、字符串、其他序列类型、迭代器等生成元组。
list()可以接收元组、字符串、其他序列类型、迭代器等生成列表。
元组的元素访问和计数
1. 元组的元素不能修改
>>> a = (20,10,30,9,8)
>>> a[3]=33
Traceback (most recent call last):
File "<pyshell#313>", line 1, in <module>
a[3]=33
TypeError: 'tuple' object does not support item assignment
2. 元组的元素访问和列表一样,只不过返回的仍然是元组对象。
>>> a = (20,10,30,9,8)
>>> a[1]
10
>>> a[1:3]
(10, 30)
>>> a[:4]
(20, 10, 30, 9)
3. 列表关于排序的方法 list.sorted()是修改原列表对象,元组没有该方法。如果要对元组排
序,只能使用内置函数 sorted(tupleObj),并生成新的列表对象。
>>> a = (20,10,30,9,8)
>>> sorted(a)
[8, 9, 10, 20, 30]
zip
zip(列表 1,列表 2,…)将多个列表对应位置的元素组合成为元组,并返回这个 zip 对象。
>>> a = [10,20,30]
>>> b = [40,50,60]
>>> c = [70,80,90]
>>> d = zip(a,b,c)
>>> list(d)
[(10, 40, 70), (20, 50, 80), (30, 60, 90)]
生成器推导式创建元组
从形式上看,生成器推导式与列表推导式类似,只是生成器推导式使用小括号。列表推
导式直接生成列表对象,生成器推导式生成的不是列表也不是元组,而是一个生成器对象。
我们可以通过生成器对象,转化成列表或者元组。也可以使用生成器对象的__next__()
方法进行遍历,或者直接作为迭代器对象来使用。不管什么方式使用,元素访问结束后,如
果需要重新访问其中的元素,必须重新创建该生成器对象。
【操作】生成器的使用测试
>>> s = (x*2 for x in range(5))
>>> s
<generator object <genexpr> at 0x0000000002BDEB48>
>>> tuple(s)
(0, 2, 4, 6, 8)
>>> list(s) #只能访问一次元素。第二次就为空了。需要再生成一次
[]
>>> s
<generator object <genexpr> at 0x0000000002BDEB48>
>>> tuple(s)
()
>>> s = (x*2 for x in range(5))
>>> s.__next__()
0
>>> s.__next__()
2
>>> s.__next__()
4
元组总结
元组的核心特点是:不可变序列。
元组的访问和处理速度比列表快。
与整数和字符串一样,元组可以作为字典的键,列表则永远不能作为字典的键使用。
希望本文所述对大家Python程序设计有所帮助。
来源:https://blog.csdn.net/weixin_43158056/article/details/92799273


猜你喜欢
- 背景作为一门相对新兴的语言,Go 可以说是站在巨人的肩膀上。从 Go 语法上,我们可以看出设计者对其有许多严肃的思考。其中 Error 的处
- 概述在进行网站爬取数据的时候,会发现很多网站都进行了反爬虫的处理,如JS加密,Ajax加密,反Debug等方法,通过请求获取数据和页面展示的
- PHP crc32() 函数实例输出 crc32() 的结果:<?php $str = crc32("Hello World
- 本文实例讲述了C#操作SQLite数据库方法。分享给大家供大家参考,具体如下:SQLite介绍SQLite is a software li
- 相信很多初学python的小伙伴都会遇到这样的坑:环境变量配置不好,无法正常启动python。那么环境变量究竟是个什么东西呢?为什么要设置它
- 问题在Django中使用mysql偶尔会出现数据库连接丢失的情况,错误通常有如下两种OperationalError: (2006,
- 本文实例讲述了Python 类的私有属性和私有方法。分享给大家供大家参考,具体如下:xx:公有变量_xx:公有变量或方法,不能通过impor
- 总结:下载文件的方式a 标签配置 download 属性 (适用于下载一些静态资源)window.location.href (适用于下载一
- 现在大部分网站都使用asp+access构建,这样的话通过下载access数据库简单就可以对网站进行破坏! 而很多的网站都不太重
- 有个excle表格需要做一些过滤然后写入数据库中,但是日期类型的cell取出来是个数字,于是查询了下解决的办法。基本的代码结构data =
- PDO::getAttributePDO::getAttribute — 取回一个数据库连接的属性(PHP 5 >= 5.1.0, P
- Tkinter(即 tk interface,简称“Tk”)本质上是对 Tcl/Tk 软件包的 Py
- 主要记录两种不同的beam search版本版本一使用类似层次遍历的方式进行搜索,用队列进行维护,每次循环对当前层的所有节点进行搜索,这些节
- 线程实现Python中线程有两种方式:函数或者用类来包装线程对象。threading模块中包含了丰富的多线程支持功能:threading.c
- 导入注意点:使用phpmyadmin或navicat之类的工具的导入功能还是会相当慢,可以直接使用mysql进行导入导入命令如下:mysql
- 我们知道,全局临时表的生命周期一直持续到创建会话(不是创建级别)才终止。有时候,你可能想创建一个不属于任何会话的全局临时表。而无论你进行什么
- 本文实例为大家分享了python名片管理系统的具体代码,供大家参考,具体内容如下import oslist_all = []def page
- 首先就是进程、线程、协程讲解老三样。进程: 本质上是一个独立执行的程序,进程是操作系统进行资源分配和调度的基本概念,操作系统进行资
- 如何使DIV居中,div垂直居中,div水平居中.这个问题在用CSS来设计网页的时候经常会遇到,如果用传统的表格来布局是很简单的,CSS里就
- 将数据写入Excel文件中,用python实现起来非常的简单,下面一步步地教大家。一、导入excel表格文件处理函数import xlwt注