python从0到1:3.列表和元组
Posted rain小白菜
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python从0到1:3.列表和元组相关的知识,希望对你有一定的参考价值。
1.序列
序列是一块用于存放多个值的连续内存空间,并且按一定顺序排列,每一个值(称为元素)都分配一个数字,称之索引或位置。通过该索引可以取出相应的值;(在python中内置了5个常用的序列结构:列表,元组,集合,字典和字符串)
1.1索引
序列中的每一个元素都有一个编号,也称为索引。注意这个索引是从0开始递增的。即下标为0表示第一个元素,下标1表示第二个元素。。。。
元素一 | 元素二 | 元素三 | 元素.... | 元素n |
0 1 2 .... n-1 <—索引(下标)
当然索引也可以是负数,这个索引从右向左计数,也就是从最后一个元素开始计数,即最后一个元素的索引值是-1
verse = ["圣安东尼奥马刺","洛杉矶湖人","休斯敦火箭","金州勇士"] print(verse[2]) print(verse[-1])
输出结果:
休斯敦火箭
金州勇士
1.2 切片
切片操作是访问序列中元素的另一种方法,他可以访问一定范围内的元素。通过切片操作可以生成一个信的序列。其语法格式如下:
sname[start : end : step]
sname:表示序列的名称
start:表示切片的开始位置(包括该位置),如果没有指定,默认就是0
end:表示切片截止位置(不包括),如果没有指定,默认为序列的长度
step:表示切片的步长,如果省略,默认为1。
通俗解释:隔“步长”取值
例子:
nba = ["乔丹","拉塞尔","贾巴尔","张伯伦","约翰逊","科比","邓肯","詹姆斯","拉里·伯德","奥尼尔"] print(nba[1:5]) print(nba[0:5:2])
输出结果是啥?
1.3序列相加
使用(+)运算符实现。说白了就是“拼接”
例如:
nba1 = ["乔丹","拉塞尔","贾巴尔","张伯伦","约翰逊","科比","邓肯","詹姆斯","拉里·伯德","奥尼尔"] nba2 = ["库里","汤普森","吉诺比利","杜兰特","姚明"] print(nba1+nba2)
运行结果:
[‘乔丹‘, ‘拉塞尔‘, ‘贾巴尔‘, ‘张伯伦‘, ‘约翰逊‘, ‘科比‘, ‘邓肯‘, ‘詹姆斯‘, ‘拉里·伯德‘, ‘奥尼尔‘, ‘库里‘, ‘汤普森‘, ‘吉诺比利‘, ‘杜兰特‘, ‘姚明‘]
注意:不能是列表和元组相加,或者是列表和字符串相加!
1.4乘法(Multiplying)
在python中,使用数字n乘以一个序列会生成新的序列。新序列的内容为原来序列被重复n次的结果。
例如:
phone = ["HuaweiMate 30","vivo x21"] print(phone * 3)
运行结果:
[‘HuaweiMate 30‘, ‘vivo x21‘, ‘HuaweiMate 30‘, ‘vivo x21‘, ‘HuaweiMate 30‘, ‘vivo x21‘]
1.5检查某个元素是否是序列的成员(元素)
在python中,可以使用in关键字检查某个元素是否是序列的成员。语法格式如下:
value in sequence
其中,value表示要检查的元素,sequence表示指定的序列。
例如:
nba = ["库里","汤普森","吉诺比利","杜兰特","姚明"] print("姚明"in nba)
运行结果:Ture
另外,也可以使用 not in 关键字实现检查某个元素是否不包含在指定的序列中。例如:
nba = ["库里","汤普森","吉诺比利","杜兰特","姚明"] print("姚明" not in nba)
运行结果:False
1.6计算序列的长度/最大值和最小值
使用len()函数计算序列的长度;使用max()函数返回序列中最大的元素;使用min()函数返回序列中最小的元素。
例如:
num = [7,14,21,28,35,42,49,56,63] print("序列num的长度为:", len(num)) print("序列",num,"中最大值为",max(num)) print("序列",num,"中最小值为",min(num))
运行结果:
序列num的长度为: 9 序列 [7, 14, 21, 28, 35, 42, 49, 56, 63] 中最大值为 63 序列 [7, 14, 21, 28, 35, 42, 49, 56, 63] 中最小值为 7
2.列表
它是python中内置的可变序列。
2.1列表的创建和删除
2.1.1使用赋值运算符直接创建列表,其语法格式如下:
listname = [element 1 , element 2 , element 3 , ..... ,element n]
listname表示列表名称;element 表示列表中的元素
2.1.2创建空列表
emptylist = []
2.1.3创建数值列表
特别说明:在python中,可以使用list()函数直接将range()函数循环出来的结果转换为列表;其基本语法:
list(data)
其中data表示可以转换为列表的数据,其类型可以是range对象/字符串/元组或者其他可迭代类型的数据。
例如:创建一个10~20之间(不包括20)所有偶数的列表;
IDLE代码可以这样写
list(range(10, 20, 2))
pycharm只能这样写
list = list(range(10, 20, 2)) print(list)
运行结果:
[10, 12, 14, 16, 18]
2.1.4 删除列表
可以使用del语句将其删除。语法如下:
del listname
其中listname为要删除列表的名称
其实呀,python中是可以自动销毁不用的列表。原则上是不需要我们自己删除的。
2.2 访问列表元素
可以直接用print函数。这也是为什么上面的代码在IDIE和PyCharm中代码不一样的原因。
2.3遍历列表
2.3.1使用for循环进行遍历;其语法格式如下:
for item in listname
其中,item用于保存获取到的元素值,要输出元素内容时,直接输出该变量就行了;listname为列表名称
例如:
print("2018年俄罗斯世界杯四强:") team = ["法国","比利时","英格兰","克罗地亚"] for iteam in team: print(iteam)
运行结果:
2018年俄罗斯世界杯四强:
法国
比利时
英格兰
克罗地亚
2.3.2使用for循环和enumerate()函数实现
语法格式如下:
for index,item enmumerate(listname):
其中:
index:用于保存元素的索引
item:用于保存获取到到元素值,要输出元素内容时,直接输出该变量即可
listname:为列表名称
例如:
print("2018年俄罗斯世界杯四强:") team = ["法国","比利时","英格兰","克罗地亚"] for index,iteam in enumerate(team): print(index + 1,iteam)
运行结果:
2018年俄罗斯世界杯四强: 1 法国 2 比利时 3 英格兰 4 克罗地亚
2.4添加/修改和删除列表元素
2.4.1添加元素
前面说过通过拼接的方式实现列表的添加数据,其实还有种方法快速实现,那就是append();其用法如下:
listname.append(obj)
其中listname为列表名称;obj为要添加到末尾到对象。
例如:
phone = ["摩托罗拉","诺基亚","三星","OPPO"] phone.append("iphone") print(phone)
运行结果:
[‘摩托罗拉‘, ‘诺基亚‘, ‘三星‘, ‘OPPO‘, ‘iphone‘]
其实还有一种方式那就是insert()。但这种方式没有append执行效率高。所以不做过多说明。
另外如果将一个列表中但全部原色添加到另一个列表中。可以使用列表对象extend()方法实现,其语法如下:
listname.extend(seq)
listname为原列表,seq为要添加但列表。语句执行后,将seq的内容追加到listname后面
2.4.2 修改元素
[‘摩托罗拉‘, ‘诺基亚‘, ‘三星‘, ‘OPPO‘, ‘iphone‘]
以上是关于python从0到1:3.列表和元组的主要内容,如果未能解决你的问题,请参考以下文章