Python(五):list、tuple
文章目录
- 列表 list
- 操作
- 基本序列操作
- 索引(正负)、切片、遍历元素、查找(in或index)
- 增、删、改
- 拼接(+)、相乘
- 排序、反转、比较、复制
- 特殊操作
- 构造列表:列表解析+一行代码
- 元组tuple
- 操作
- 基本序列操作
- 索引(正负)、切片、遍历元素、查找(in)
- 增、删、改
- 拼接(+)、相乘
- 排序、反转、比较、复制
- list与tuple
- tuple 与 垃圾回收机制
- list 方法、内置函数总结
列表 list
操作
基本序列操作
索引(正负)、切片、遍历元素、查找(in或index)
li = [[1, [2, 3], 4], [5, 6], [7]]# 索引(正负)
print(li) # [[1, [2, 3], 4], [5, 6], [7]]
print(li[0]) # [1, [2, 3], 4]
print(li[-1]) # [7]
print(li[-2]) # [5, 6]
print(li[0][1][1]) # 3# 切片
li = list(range(10))
print(li[0:3]) # 0,1,2
print(li[:3]) # 0,1,2
print(li[1:]) # [1, 2, 3, 4, 5, 6, 7, 8, 9] 从1开始,到最后
print(li[-2:]) # [8, 9] 从倒数第二个开始
print(li[::2]) # [0, 2, 4, 6, 8] 带步长
print(li[6:2:-1]) # [6, 5, 4, 3]# 遍历
for x in li:print(x)li = ['a', 'b', 'c']
for i, x in enumerate(li): # 索引, 元素print(i, x)# 查找
li = ['a', 'b', 'c']
x = 'a'
print(x in li) #True
print(li.index(x)) #0
增、删、改
li = [[1, [2, 3], 4], [5, 6], [7]]# 增
li = [1,[2,3]]
li.append([[4,5],6]) # [1, [2, 3], [[4, 5], 6]] 末尾,作为一个整体添加
li.insert(0, [[8,9],10]) # 任意位置,必须有参数index
li.extend([[4,5],6]) # [1, [2, 3], [4, 5], 6] 末尾,作为元素添加# 删
# del
del li[0]
# pop
x = li.pop() # 末尾
x = li.pop(0) # 任意位置
# remove 最慢(匹配值)
li.remove([[8,9],10])
print(li)# 改
li[-1] = 8
拼接(+)、相乘
# 拼接
li1 = [1,2,3]
li2 = [(4,5),[6,7]]
print(li1+li2) # [1, 2, 3, (4, 5), [6, 7]]
print(li1.extend(li2)) # [1, 2, 3, (4, 5), [6, 7]]# 相乘
print(li1*3) # [1, 2, 3, 1, 2, 3, 1, 2, 3]
li = [0]*10
print(li) # [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
排序、反转、比较、复制
Python(二十五):排序、反转
Python(十九):比较、深浅拷贝
特殊操作
构造列表:列表解析+一行代码
# 偶数的平方
li = [x**2 for x in range(10) if x%2==0]
print(li) # [0, 4, 16, 36, 64]
元组tuple
- 元组由逗号标识,而不是小括号
sex = ()
sex = (male,) # 元组创建,当只有一个元素时,必须加逗号
操作
基本序列操作
索引(正负)、切片、遍历元素、查找(in)
同list
增、删、改
元组没有增删改,只能创建新元组:可以先转为list,再增删改,再转为tuple
拼接(+)、相乘
# 拼接
t1 = (1,2,3)
t2 = ('a','b','c')
print(t1+t2) # (1, 2, 3, 'a', 'b', 'c')# 相乘
print(t1*3) # [1, 2, 3, 1, 2, 3, 1, 2, 3]
排序、反转、比较、复制
Python(二十五):排序、反转
Python(十九):比较、深浅拷贝
list与tuple
两者都是都是一个可以放置任意数据类型的有序集合,元素类型不需要一致。
有序:内部有序,插入顺序与输出一致
列表 | 元组 | |
---|---|---|
性质 | 长度不固定 | 长度固定(初始化时),不能增删改 |
存储与性能 |
存储略大:存储指针,python会额外分配多一点空间,保证了其操作的高效性(增加 / 删除的时间复杂度均为 O(1)) 性能略逊:初始化创建花的时间更多 |
存储更小:存储空间固定 性能更优 |
索引 切片 嵌套 |
✓ | ✓ |
tuple 与 垃圾回收机制
对静态数据做一些资源缓存:
- 对于一些静态变量,比如元组,如果它不被使用并且占用空间不大时,Python 会暂时缓存这部分内存。
- 下次我们再创建同样大小的元组时,Python 就可以不用再向操作系统发出请求,去寻找内存,而是可以直接分配之前缓存的内存空间
list 方法、内置函数总结
- 永久性函数:
x.fun()
fun(x)- 暂时性函数:必须返回赋值才能变为永久性
x = x.fun()
x = fun(x)
list的方法 | 永久 |
---|---|
list.append(x) | √ |
list.insert(index, x) | √ |
x = list.pop(index=-1) | √ |
list.remove(x) | √ |
内置函数 | 永久 |
---|---|
li = sorted(li) | × |
iterator = reversed(li) ,返回迭代器 | × |
Python(五):list、tuple相关推荐
- 【Python五篇慢慢弹】快速上手学python
快速上手学python 作者:白宁超 2016年10月4日19:59:39 摘要:python语言俨然不算新技术,七八年前甚至更早已有很多人研习,只是没有现在流行罢了.之所以当下如此盛行,我想肯定是多 ...
- [转载] python中元组(tuple)用法总结
参考链接: Python | tuple函数 一.tuple也是一个class,是不可变的list类型,不可以增删改. 创建: tup1 = ('physics', 'chemistry', 1997 ...
- python语句print(tuple(range(2)))_Python语句print(tuple(range(2)),list(range(2)))的运行结果是__________。...
[单选题]( )是通信网中最早出现的一种交换方式,也是应用最普遍的一种交换方式,主要应用于电话通信网中,完成电话交换. [填空题]离心泵的流量调节实际上是改变泵的____点. [单选题]关于 的导数, ...
- python中元组(tuple)用法总结
一.tuple也是一个class,是不可变的list类型,不可以增删改. 创建: tup1 = ('physics', 'chemistry', 1997, 2000); tup2 = (1, 2, ...
- Python之创建tuple
Python之创建tuple tuple是另一种有序的列表,中文翻译为" 元组 ".tuple 和 list 非常类似,但是,tuple一旦创建完毕,就不能修改了. 同样是表示班里 ...
- Python语言学习:基于python五种方法实现使用某函数名【func_01】的字符串格式('func_01')来调用该函数【func_01】执行功能
Python语言学习:基于python五种方法实现使用某函数名[func_01]的字符串格式('func_01')来调用该函数[func_01]执行功能 目录 问题提出 代码五种设计思路 T1方法:e ...
- 【Python五篇慢慢弹】数据结构看python
数据结构看python 作者:白宁超 2016年10月9日14:04:47 摘要:继<快速上手学python>一文之后,笔者又将python官方文档认真学习下.官方给出的pythondoc ...
- 【Python五篇慢慢弹(5)】类的继承案例解析,python相关知识延伸
类的继承案例解析,python相关知识延伸 作者:白宁超 2016年10月10日22:36:57 摘要:继<快速上手学python>一文之后,笔者又将python官方文档认真学习下.官方给 ...
- python里面的tuple与list对比
python里面的tuple与list对比 tuple 另一种有序列表叫元组:tuple.tuple和list非常类似,但是tuple一旦初始化就不能修改,比如同样是列出同学的名字: >> ...
- Python中的tuple
1.空的tuple: tup1 = (); 2.只含有一个元素的tuple: tup1 = (50,); #注意,必须有,尽管只有一个元素 3Delete Tuple Elements: Re ...
最新文章
- cocos2d-js中Hello World代码分析
- linux generic什么意思_如何在 Ubuntu Linux 上释放 /boot 分区的空间? | Linux 中国
- Laravel大型项目系列教程(三)之发表文章
- Ubuntu下C++代码调用可执行文件。
- 一次违反常规的Java大厂面试经历,系列教学
- 清除Linux终端命令的历史记录
- 小学教师计算机国培培训总结,小学教师国培培训心得体会
- python3元类简介(metaclass)
- MySQL基础(三)表关系及数据的增删改查
- 路由访问控制列表的设计
- 订单生产计划表范本,生产计划表范本
- jQuery 滚动条插件nicescroll 使用方法、常见配置和事件回调使用说明
- 计算机视觉论文-2021-06-01
- 苹果电脑装系统只有W ndows,苹果MAC电脑双系统教程——MAC安装Windows双系统教程...
- php 实现rpc,使用php链接jsonrpc服务
- echarts节点折叠实现
- 交换机级联后网速在底层交换机变慢的问题
- Laravel symlink() has been disabled for security reasons
- SMTP, POP3, IMAP,Exchange ActiveSync区别
- 微信小程序 初学——【音乐播放器】
热门文章
- Kafka设计解析(三):Kafka High Availability (下)
- [2077]迷障 sdutOJ
- 深入浅出Linux设备驱动编程--引言
- 【Linux】04 实验笔记
- android WebView加载不出网页里的视频内容出现This request has been blocked; the content must be served over HTTPS.
- linux定时删除文件,Linux下定时删除文件
- 山东大学往年c语言期末试题及答案,山东大学历年C语言题库.pdf
- html页面能直接用vuex吗,vuex(多用于不同页面之间的数据共用和修改)
- 如何:使用 DataAnnotations 特性验证模型数据+MetadataType的使用,MVC的Model层数据验证 指定要与数据模型类关联的元数据类
- 说说大型高并发高负载网站的系统架构