Python序列之list和tuple常用方法以及注意事项


Posted in Python onJanuary 09, 2015

sequence 序列

sequence(序列)是一组有顺序的对象的集合。序列可以包含一个或多个元素,也可以没有任何元素。

我们之前所说的基本数据类型,都可以作为序列的对象。对象还可以是另一个序列。序列有两种:list (表) 和 tuple(元组) 。
list和tuple的主要区别在于,一旦建立,tuple的各个元素不可再变更,而list的各个元素可以再变更。

List

获得list元素的个数:

>>> lst=['更新慢','python',5.44,False]

>>> len(lst)

4

引用访问时索引是从0开始,注意不要越界:

>>> lst[0]

'更新慢'

>>> lst[1]

'python'

>>> lst[2]

5.44

>>> lst[3]

False

>>> lst[4]

Traceback (most recent call last):

  File "<pyshell#30>", line 1, in <module>

    lst[4]

IndexError: list index out of range

用-1做索引,直接获取最后一个元素:

>>> lst[-1]

False

>>> lst[-2]

5.44

>>> lst[-3]

'python'

>>> lst[-4]

'更新慢'

>>> lst[-5]

Traceback (most recent call last):

  File "<pyshell#35>", line 1, in <module>

    lst[-5]

IndexError: list index out of range

因为list是一个可变的有序表,所以,可以往list末尾追加元素:

>>> lst.append('加我一个')

>>> lst

['更新慢', 'python', 5.44, False, '加我一个']

一次追加多个元素:

>>> lst.extend(['A','B','C'])

>>> lst

['更新慢', 'python', 5.44, False, '加我一个', 'A', 'B', 'C']

要删除list末尾的元素,用pop()方法:

>>> lst.pop()

'C'

>>> lst

['更新慢', 'python', 5.44, False, '加我一个', 'A', 'B']

删除指定位置的元素,用pop(i)方法,其中i是索引位置:

>>> lst.pop(0)

'更新慢'

>>> lst

['python', 5.44, False, '加我一个', 'A']

list元素替换,可以直接赋值给对应的索引位置:

>>> lst[-1]='100'

>>> lst

['python', 5.44, False, '加我一个', '100']

list元素也可以是另一个list,插入的那个list只算一个元素:

>>> lst.append(lst1)

>>> lst

['python', 5.44, False, '加我一个', '100', ['666', 'QWER']]

>>> len(lst)

6

Tuple

Tuple一旦初始化就不能修改。字符串是一种特殊的元素,因此可以执行元组的相关操作。

>>> str='该睡觉了,晚安!'

>>> print (str[:7])

该睡觉了,晚安

不可变的tuple意义就在于因为不可变,所以代码更安全。如果可能,能用tuple就尽量用tuple。

>>> tuple=('1','2','3')

>>> tuple[0]=6

Traceback (most recent call last):

  File "<pyshell#62>", line 1, in <module>

    tuple[0]=6

TypeError: 'tuple' object does not support item assignment

定义一个空tuple:

>>> tuple1=()

>>> tuple1

()

注意,要定义一个只有1个元素的tuple:
>>> tuple2=(666,)

>>> tuple2

(666,)              #正确的

>>> tuple3=(666)

>>> tuple3

666                 #错误的,只定义了666这个数

注意:Tuple所谓的“不变”是说,tuple的每个元素,指向永远不变。

>>> l=['CCTV-5','HI']

>>> tuple4=('UFO','HACK',l)

>>> tuple4

('UFO', 'HACK', ['CCTV-5', 'HI'])

>>> l[1]='我先变一下'

>>> tuple4

('UFO', 'HACK', ['CCTV-5', '我先变一下'])

所以尽量避免这种套用。

当日小结

掌握List和Tuple的常用方法以及注意事项。

Python 相关文章推荐
多线程爬虫批量下载pcgame图片url 保存为xml的实现代码
Jan 17 Python
python实现机器人行走效果
Jan 29 Python
WIn10+Anaconda环境下安装PyTorch(避坑指南)
Jan 30 Python
详解Python网络框架Django和Scrapy安装指南
Apr 01 Python
Python自动化运维之Ansible定义主机与组规则操作详解
Jun 13 Python
使用python实现简单五子棋游戏
Jun 18 Python
pyqt5让图片自适应QLabel大小上以及移除已显示的图片方法
Jun 21 Python
python实现多进程通信实例分析
Sep 01 Python
Python3 A*寻路算法实现方式
Dec 24 Python
keras 权重保存和权重载入方式
May 21 Python
Python 使用Opencv实现目标检测与识别的示例代码
Sep 08 Python
python爬虫中采集中遇到的问题整理
Nov 27 Python
Python中的生成器和yield详细介绍
Jan 09 #Python
Python中实现对list做减法操作介绍
Jan 09 #Python
python base64 decode incorrect padding错误解决方法
Jan 08 #Python
Python中字符编码简介、方法及使用建议
Jan 08 #Python
Python实现一个简单的MySQL类
Jan 07 #Python
python实现多线程暴力破解登陆路由器功能代码分享
Jan 04 #Python
Python中对列表排序实例
Jan 04 #Python
You might like
Mysql和网页显示乱码解决方法集锦
2008/03/27 PHP
JS 网站性能优化笔记
2011/05/24 PHP
PHP 正则表达式之正则处理函数小结(preg_match,preg_match_all,preg_replace,preg_split)
2012/10/05 PHP
tp5(thinkPHP5框架)使用DB实现批量删除功能示例
2019/05/28 PHP
Nginx+php配置文件及原理解析
2020/12/09 PHP
JavaScript写的一个DIV 弹出网页对话框
2009/08/14 Javascript
Javascript基于AJAX回调函数传递参数实例分析
2015/12/15 Javascript
微信小程序 Tab页切换更新数据
2017/01/05 Javascript
用webpack4开发小程序的实现方法
2019/06/04 Javascript
vue集成kindeditor富文本的实现示例代码
2019/06/07 Javascript
vue中解决微信html5原生ios虚拟键返回不刷新问题
2020/10/20 Javascript
vue实现图片裁剪后上传
2020/12/16 Vue.js
微信小程序自定义支持图片的弹窗
2020/12/21 Javascript
[51:17]Mski vs VGJ.S Supermajor小组赛C组 BO3 第三场 6.3
2018/06/04 DOTA
[01:03:41]DOTA2-DPC中国联赛 正赛 Dynasty vs XG BO3 第三场 2月2日
2021/03/11 DOTA
python执行get提交的方法
2015/04/29 Python
python中while循环语句用法简单实例
2015/05/07 Python
Python socket编程实例详解
2015/05/27 Python
Python语言实现将图片转化为html页面
2017/12/06 Python
Python爬虫之网页图片抓取的方法
2018/07/16 Python
django rest framework 实现用户登录认证详解
2019/07/29 Python
Django 1.10以上版本 url 配置注意事项详解
2019/08/05 Python
django中的图片验证码功能
2019/09/18 Python
Django中使用haystack+whoosh实现搜索功能
2019/10/08 Python
Python实现报警信息实时发送至邮箱功能(实例代码)
2019/11/11 Python
Nginx+Uwsgi+Django 项目部署到服务器的思路详解
2020/05/08 Python
CSS3 Flex 弹性布局实例代码详解
2018/11/01 HTML / CSS
澳大利亚领先的武术用品和健身器材供应商:SMAI
2019/03/24 全球购物
往来会计岗位职责
2013/12/19 职场文书
材料专业大学毕业生自荐书
2014/07/02 职场文书
群众路线领导班子四风对照检查材料
2014/09/27 职场文书
办公室个人总结
2015/02/28 职场文书
2015年纪念“卢沟桥事变”78周年活动方案
2015/05/06 职场文书
创业计划书之外语培训班
2019/11/02 职场文书
MySQL 查询速度慢的原因
2021/05/25 MySQL
vue ref如何获取子组件属性值
2022/03/31 Vue.js