一、列表
列表是我们以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储、修改等操作
1、定义列表
names = ['heihouzidejia',"Tenglan",'Eric']
通过下标访问列表中的元素,下标从0开始计数
>>> names[0]
'heihouzidejia'
>>> names[2]
'Eric'
>>> names[-1]
'Eric'
#还可以倒着取
>>> names[-2]
'Tenglan'
2、切片:取多个元素
#定义列表
>>>> names = ["heihouzidejia","Tenglan","Eric","Rain","Tom","Amy"]
#取下标1至下标4之间的数字,包括1,不包括4
>>> names[1:4]
['Tenglan', 'Eric', 'Rain']
#取下标1至-1的值,不包括-1
>>> names[1:-1]
['Tenglan', 'Eric', 'Rain', 'Tom']
#取下标0至3,不包括3
>>> names[0:3]
['heihouzidejia', 'Tenglan', 'Eric']
#如果是从头开始取,0可以忽略,跟上句效果一样
>>> names[:3]
['heihouzidejia', 'Tenglan', 'Eric']
#如果想取最后一个,必须不能写-1,只能这么写
>>> names[3:]
['Rain', 'Tom', 'Amy']
#这样-1就不会被包含了
>>> names[3:-1]
['Rain', 'Tom']
#后面的2是代表,每隔一个元素,就取一个
>>> names[0::2]
['heihouzidejia', 'Eric', 'Tom']
#和上句效果一样
>>> names[::2]
['heihouzidejia', 'Eric', 'Tom']
3、追加
#打印一下当前names列表
>>> names
['heihouzidejia', 'Tenglan', 'Eric', 'Rain', 'Tom', 'Amy']
#向列表中追加
>>> names.append("我是新来的")
#再次打印列表
>>> names
['heihouzidejia', 'Tenglan', 'Eric', 'Rain', 'Tom', 'Amy', '我是新来的']
4、插入
#打印一下当前names列表
>>> names
['heihouzidejia', 'Tenglan', 'Eric', 'Rain', 'Tom', 'Amy', '我是新来的']
#向列表中插入数据
>>> names.insert(2,"强行从Eric前面插入")
#再次打印列表
>>> names
['heihouzidejia', 'Tenglan', '强行从Eric前面插入', 'Eric', 'Rain', 'Tom', 'Amy', '我是新来的']
#向列表中插入数据
>>> names.insert(5,"从eric后面插入试试新姿势")
#再次打印列表
>>> names
['heihouzidejia', 'Tenglan', '强行从Eric前面插入', 'Eric', 'Rain', '从eric后面插入试试新姿势', 'Tom', 'Amy', '我是新来的']
5、修改
#打印一下当前names列表
>>> names
['heihouzidejia', 'Tenglan', '强行从Eric前面插入', 'Eric', 'Rain', '从eric后面插入试试新姿势', 'Tom', 'Amy', '我是新来的']
#修改列表中数据
>>> names[2] = "该换人了"
#再次打印列表
>>> names
['heihouzidejia', 'Tenglan', '该换人了', 'Eric', 'Rain', '从eric后面插入试试新姿势', 'Tom', 'Amy', '我是新来的']
6、删除
#打印一下当前names列表
>>> names
['heihouzidejia', 'Tenglan', '该换人了', 'Eric', 'Rain', '从eric后面插入试试新姿势', 'Tom', 'Amy', '我是新来的']
#删除列表中的数据
>>> del names[2]
#再次打印列表
>>> names
['heihouzidejia', 'Tenglan', 'Eric', 'Rain', '从eric后面插入试试新姿势', 'Tom', 'Amy', '我是新来的']
#删除列表中的数据
>>> del names[4]
#再次打印列表
>>> names
['heihouzidejia', 'Tenglan', 'Eric', 'Rain', 'Tom', 'Amy', '我是新来的']
#删除指定元素
>>> names.remove("Eric")
#再次打印列表
>>> names
['heihouzidejia', 'Tenglan', 'Rain', 'Tom', 'Amy', '我是新来的']
#删除列表最后一个值
>>> names.pop()
'我是新来的'
#再次打印列表
>>> names
['heihouzidejia', 'Tenglan', 'Rain', 'Tom', 'Amy']
7、多列表合并
#打印列表
>>> names
['heihouzidejia', 'Tenglan', 'Rain', 'Tom', 'Amy']
#定义列表b
>>> b = [1,2,3]
#把b列表合并到names列表中
>>> names.extend(b)
#再次打印列表
>>> names
['heihouzidejia', 'Tenglan', 'Rain', 'Tom', 'Amy', 1, 2, 3]
8、拷贝
#打印列表
>>> names
['heihouzidejia', 'Tenglan', 'Rain', 'Tom', 'Amy', 1, 2, 3]
>>> name_copy = names.copy()
>>> name_copy
['heihouzidejia', 'Tenglan', 'Rain', 'Tom', 'Amy', 1, 2, 3]
copy真的这么简单么?那我还讲个屁。。。
(1)浅copy
浅复制,只复制第一层
#定义C列表
>>> c = [1,2,3,[4,5]]
>>> c
[1, 2, 3, [4, 5]]
#列表copy操作
>>> d = c.copy()
#打印d列表
>>> d
[1, 2, 3, [4, 5]]
#修改c列表
>>> c[0] = 9
>>> c[3][0] = 8
#再次打印c和d列表
>>>c
[9, 2, 3, [8, 5]]
>>>d
[1, 2, 3, [8, 5]]
(2)深 copy
#导入copy包
>>> import copy
e = copy.deepcopy(c)
c[3][0] = 7
print(c)
print(e)
9、统计
#打印列表
>>> names
['heihouzidejia', 'Tenglan', 'Amy', 'Tom', 'Amy', 1, 2, 3]
#统计列表里面的Amy数量
>>> names.count("Amy")
2
10、排序&翻转
#打印列表
>>> names
['heihouzidejia', 'Tenglan', 'Amy', 'Tom', 'Amy', 1, 2, 3]
#排序
>>> names.sort() #排序
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unorderable types: int() < str() #3.X里不同数据类型不能放在一起排序了,擦
#修改列表
>>> names[-3] = '1'
>>> names[-2] = '2'
>>> names[-1] = '3'
#打印列表
>>> names
['heihouzidejia', 'Amy', 'Amy', 'Tenglan', 'Tom', '1', '2', '3']
#排序
>>> names.sort()
#打印已经排序过的列表
>>> names
['1', '2', '3', 'heihouzidejia', 'Amy', 'Amy', 'Tenglan', 'Tom']
#翻转列表
>>> names.reverse() #反转
#打印列表
>>> names
['Tom', 'Tenglan', 'Amy', 'Amy', 'heihouzidejia', '3', '2', '1']
11、获取下标
#打印列表
>>> names
['Tom', 'Tenglan', 'Amy', 'Amy', 'heihouzidejia', '3', '2', '1']
#获取下标
#只返回找到的第一个下标
>>> names.index("Amy")
2
二、元组
元组其实跟列表差不多,也是存一组数,只不过它一旦创建,便不能再修改,所以又叫只读列表
语法
names = ("heihouzidejia","jack","eric")
元组,它只有2个方法,一个是count,一个是index,完毕
案例
# 报 error 证明 元组只能读取 ,不能修改添加
names = ('heihouzidejia','heihouzi')
names.append('aaa')