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

yipeiwu_com5年前Python基础

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的常用方法以及注意事项。

相关文章

Python2与Python3的区别实例分析

本文实例讲述了Python2与Python3的区别。分享给大家供大家参考,具体如下: python2与python3的区别 1、性能 2、编码格式utf-8 3、打印语句变成了打印函数...

python机器学习之神经网络实现

python机器学习之神经网络实现

神经网络在机器学习中有很大的应用,甚至涉及到方方面面。本文主要是简单介绍一下神经网络的基本理论概念和推算。同时也会介绍一下神经网络在数据分类方面的应用。 首先,当我们建立一个回归和分类模...

django中使用事务及接入支付宝支付功能

django中使用事务及接入支付宝支付功能

之前一直想记录一下在项目中使用到的事务以及支付宝支付功能,自己一直犯懒没有完,趁今天有点兴致,在这记录一下。 商城项目必备的就是支付订单的功能,所以就会涉及到订单的保存以及支付接口的引入...

Python:Scrapy框架中Item Pipeline组件使用详解

Item Pipeline简介 Item管道的主要责任是负责处理有蜘蛛从网页中抽取的Item,他的主要任务是清晰、验证和存储数据。 当页面被蜘蛛解析后,将被发送到Item管道,并经过几个...

Python3离线安装Requests模块问题

最近运维上需要在测试环境调用http的post请求,实现自动化日切,我看了下我会的编程,也就python能符合我的要求,且简单好操作。但是在实际操作过程遇到了一些问题,其中最大的就是测试...