第五章 列表、元组和字符串
创建列表
创建列表用中括号括起一堆数据就可以了,数据之间用逗号隔开。
>>> number = [1,5,5,7,5,9]
混合列表
>>> mix = [1,"甲鱼",3.14,[1,5,7]]
向列表添加元素
append():添加参数到列表的末尾,但是不能同时添加多个。
>>> number
[1, 5, 5, 7, 5, 9]
>>> number.append(6)
>>> number
[1, 5, 5, 7, 5, 9, 6]
extend():向列表末尾添加多个元素,参数应是一个列表
>>> number.extend(7,8)
Traceback (most recent call last):
File "<pyshell#46>", line 1, in <module>
number.extend(7,8)
TypeError: extend() takes exactly one argument (2 given)
>>> number.extend([7,8])
>>> number
[1, 5, 5, 7, 5, 9, 6, 7, 8]
insert() :往列表的任意位置插入元素,第一个参数表示位置,第二个参数表示插入的元素,
注意:python的索引从0开始。
从列表获取元素
用索引值获取,列表索引值从0开始。
>>>number[2]
5
交换列表元素:
>>> name = ["鸡蛋","鸭蛋","鹅蛋","李狗蛋"]
>>> name[1],name[3]=name[3],name[1]
>>> name
['鸡蛋', '李狗蛋', '鹅蛋', '鸭蛋']
从列表删除元素
remove(),del,pop()
remove():只需要知道该元素在列表中,不需要知道位置,如果不在列表中会报错
>>>name.remove(“李狗蛋”)
del :del是一个语句,删除指定位置的元素或整个列表
>>>del name[1]
>>>del name
pop() :默认弹出列表中最后一个元素,加上索引会弹出对应参数。
>>>name.pop(2)
“鹅蛋”
列表分片
使用列表分片可以一次性获取很多个元素。
用一个冒号隔开两个索引值,结束位置上的元素是不包含的。列表分片并不改变原列表。
没有开始位置python默认是0。
name[:2]
name[1:] 从指定索引到列表末尾;
name[:] 得到整个列表的拷贝。
列表分片进阶
第三个参数可以设置步长,默认值为1
>>>list[0:9:2]
[1,3,5,7,9]
还可以写成list[::2]
步长为负数
>>>list[::-1]
[9,8,7,6,5,4,3,2,1]
相当于复制一个反转的列表。
常用操作符
list1 > list2 列表可以比较
list1 + list2,加号为连接操作符,相当于extend()的效果。
>>>list = [123]
>>>list *3 重复操作符
[123,123,123]
in和not in
in 和not in只能判断一个层次的成员关系。
进入一层列表 list1[2]
列表的小伙伴们
count():计算它的参数在列表中出现的次数
>>>list.count(1)
2
index() :返回参数在列表中的位置
>>>start = list.index(1)+1
>>>stop = len(list)
>>>list.index(1,start,stop)
2
reverse() :将整个列表原地翻转。
>>>list.reverse()
sort() :对列表程序排序,默认不需要参数,从小到大排。默认为sort(reverse = False),把False改成True就是从大到小排列。
创建元组
创建元组大部分的时候用小括号。
>>>tuplel = (1,2,3,4,5,6)
访问元组和列表一样
>>>tuplel[1]
2
不能修改元组的元素
>>> tuplel[1] = 1
Traceback (most recent call last):
File "<pyshell#2>", line 1, in <module>
tuplel[1] = 1
TypeError: 'tuple' object does not support item assignment
元组的标志性符号是(,)逗号。
创建一个空元组直接使用小括号即可。
元组只有一个元素,在后面加上一个逗号即可。
>>> 8*(8)
64
>>> 8*(8,)
(8, 8, 8, 8, 8, 8, 8, 8)
更新和删除元组
通过分片方法将元组拆分,再用连接字符串(+)合并成新元组。
>>> temp = ("小鸡","小鸭","小猪")
>>> temp = temp[:2]+("小甲鱼",)+temp[2:]
>>> temp
('小鸡', '小鸭', '小甲鱼', '小猪')
单独删除元组的元素是不可能的,但是可以间接删除。
>>> temp = temp[:2]+temp[3:]
>>> temp
('小鸡', '小鸭', '小猪')
删除整个元素用del
>>>del temp