今天的学习内容有:
列表:
1.介绍列表:
列表(list):能装对象的对象,有顺序的(按照我们添加的顺序保存)
在代码中用[]表示列表,列表中可以放任意的数据,每一项数据用逗号隔开
列表同样拥有索引和切片
例:
索引
lst = ['韦德','保罗','艾佛森','科比','欧文','威斯布鲁克','姚明','弗朗西斯']
print(lst[1])
>>>保罗
print(lst[-2])
>>>姚明
print(lst[0][1])
>>>德
切片
lst = ['韦德','保罗','艾佛森','科比','欧文','威斯布鲁克','姚明','弗朗西斯']
print(lst[1:3])
>>>['保罗', '艾佛森']
print(lst[:3])
>>>['韦德', '保罗', '艾佛森']
print(lst[0:7:2])
>>>['韦德', '艾佛森', '欧文', '姚明']
print(lst[::-2])
['弗朗西斯', '威斯布鲁克', '科比', '保罗']
2.增删改查:
1.增
.append() --> 追加 ,添加到列表末端(重点)
lst = ['韦德','保罗','艾佛森','科比','欧文','威斯布鲁克','姚明','弗朗西斯']
lst.append('乔丹')
print(lst)
>>>['韦德', '保罗', '艾佛森', '科比', '欧文', '威斯布鲁克', '姚明', '弗朗西斯', '乔丹']
.insert(插入位置,插入内容) --> 插入
lst = ['韦德','保罗','艾佛森','科比','欧文','威斯布鲁克','姚明','弗朗西斯']
lst.insert(1,'乔丹')
print(lst)
>>>['韦德', '乔丹', '保罗', '艾佛森', '科比', '欧文', '威斯布鲁克', '姚明', '弗朗西斯']
.extend() --> 迭代添加
lst = ['韦德','保罗','艾佛森','科比','欧文','威斯布鲁克','姚明','弗朗西斯']
lst.extend('乔丹')
print(lst)
>>>['韦德', '保罗', '艾佛森', '科比', '欧文', '威斯布鲁克', '姚明', '弗朗西斯', '乔', '丹']
lst.extend(['乔丹'])
print(lst)
>>>['韦德', '保罗', '艾佛森', '科比', '欧文', '威斯布鲁克', '姚明', '弗朗西斯', '乔', '丹', '乔丹']
2.删
.pop() --> 弹出一个, 默认弹出最后一个,可以弹出指定位置的元素,有返回值,返回值是被删除的元素
lst = ['韦德','保罗','艾佛森','科比','欧文','威斯布鲁克','姚明','弗朗西斯']
lst.pop()
print(lst)
>>>['韦德', '保罗', '艾佛森', '科比', '欧文', '威斯布鲁克', '姚明']
lst = ['韦德','保罗','艾佛森','科比','欧文','威斯布鲁克','姚明','弗朗西斯']
lst.pop(3)
print(lst)
>>>['韦德', '保罗', '艾佛森', '欧文', '威斯布鲁克', '姚明', '弗朗西斯']
lst = ['韦德','保罗','艾佛森','科比','欧文','威斯布鲁克','姚明','弗朗西斯']
ret = lst.pop(2)
print(lst)
print(ret)
>>>['韦德', '保罗', '科比', '欧文', '威斯布鲁克', '姚明', '弗朗西斯']
>>>艾佛森
.remove() --> 移除 ,指定元素, 删除第一个
lst = ['韦德','保罗','韦德','艾佛森','科比','欧文','威斯布鲁克','弗朗西斯']
lst.remove('韦德')
print(lst)
>>>['保罗', '韦德', '艾佛森', '科比', '欧文', '威斯布鲁克', '弗朗西斯']
lst = ['韦德','保罗','韦德','艾佛森','科比','欧文','威斯布鲁克','弗朗西斯']
del 列表 --> 切片删除,可进行批量删除
lst = ['韦德','保罗','保罗','艾佛森','科比','欧文','威斯布鲁克','弗朗西斯']
del lst[2]#类似于pop
print(lst)
>>>['韦德', '保罗', '艾佛森', '科比', '欧文', '威斯布鲁克', '弗朗西斯']
lst = ['韦德','保罗','保罗','艾佛森','科比','欧文','威斯布鲁克','弗朗西斯']
del lst[2:]
print(lst)
>>>['韦德', '保罗']
lst = ['韦德','保罗','保罗','艾佛森','科比','欧文','威斯布鲁克','弗朗西斯']
del lst[0:7:2]
print(lst)
>>>['保罗', '艾佛森', '欧文', '弗朗西斯']
.clear --> 清空列表
lst = ['韦德','保罗','保罗','艾佛森','科比','欧文','威斯布鲁克','弗朗西斯']
lst.clear()
print(lst)
>>>[]
3.改
lst = ['jay','Euan','fla']
lst[1] = 'jack'
print(lst)
>>>['jay', 'jack', 'fla']
lst = ['jay','Euan','fla','wade']
lst[1:3] = 'pen'
print(lst)
>>>['jay', 'p', 'e', 'n', 'wade']
lst = ['jay','Euan','fla','wade']
lst[1:4:2] = 'pe' #当切片出来的内容步长如果不是1:元素的个数必须要匹配
print(lst)
>>>['jay', 'p', 'fla', 'e']
4.查
lst = ['jay','Euan','fla','wade']
#name是表示列表中的每一项
for name in lst: # 列表可以使用for循环。 list是一个可迭代对象
print(name)
>>>jay
>>>Euan
>>>fla
>>>wade
3. 列表的常用功能
.count() --> 计数
lst = ['jay','Euan','fla','wade']
print(lst.count('Euan'))
>>>1
.sort() --> 排序
lst = [1, 8, 23, 29, 46, 2323, 54, 5]
lst.sort()
print(lst)
>>>[1, 5, 8, 23, 29, 46, 54, 2323]
.sort(reverse = True) --> 倒序
lst = [1, 8, 23, 29, 46, 2323, 54, 5]
lst.sort(reverse= True)
print(lst)
>>>[2323, 54, 46, 29, 23, 8, 5, 1]
.reverse() --> 翻过来
lst = [1, 8, 23, 29, 46, 2323, 54, 5]
lst.reverse()
print(lst)
>>>[5, 54, 2323, 46, 29, 23, 8, 1]
4.列表的嵌套:
lst = [["葫芦娃", "黑猫警长","西游记"], ["武斗乾坤", "wahaha", "斗破苍穹", "盘龙"], ["三体",132, "明朝那些事儿"]]
print(lst[1][0])
print(lst[2][2][0])
# 降维: 一层一层的找
>>>武斗乾坤
>>>明
# 把wahaha中的a换成b
lst = [["葫芦娃", "黑猫警长","西游记"], ["武斗乾坤", "wahaha", "斗破苍穹", "盘龙"], ["三体",132, "明朝那些事儿"]]
lst[1][1] = lst[1][1].replace("a", "b")
# 多层嵌套的时候如果进行操作。 需要重新赋值。 原因是替换的内容是一个 字符串
print(lst)
>>>[['葫芦娃', '黑猫警长', '西游记'], ['武斗乾坤', 'wbhbhb', '斗破苍穹', '盘龙'], ['三体', 132, '明朝那些事儿']]
lst = [["葫芦娃", "黑猫警长","西游记"], ["武斗乾坤", "wahaha", "斗破苍穹", "盘龙"], ["三体",132, "明朝那些事儿"]]
lst[1].insert(1, "大闹天宫")
# 对于内部元素如果是可变的数据类型。 直接改就行了
print(lst)
>>>[['葫芦娃', '黑猫警长', '西游记'], ['武斗乾坤', '大闹天宫', 'wahaha', '斗破苍穹', '盘龙'], ['三体', 132, '明朝那些事儿']]
元组:
tuple: 只读列表。由() 组成。特点:不可变,如果只有一个元素。 末尾加逗号
不可变: 元素内部第一层元素的内存地址
也有索引 和切片功能
range:
range(n): [0,n)
lst = ['jay','Euan','fla','wade']
for name in range(3):
print(name,lst[name])
>>>0 jay
>>>1 Euan
>>>2 fla
range(m,n): [m,n)
range(m,n,p): 从m到n, 每隔p个取一个