列表
1.什么是列表(list)
列表是容器型数据类型(序列),将[]作为容器的标志,多个元素用逗号隔开 -> [元素1, 元素2, 元素3, ...]
特点:
可变的(指的是:列表中元素可变 - 元素支持增删改查)、有序的(支持下标操作)
2.声明列表
变量名 = [元素1, 元素2, 元素3, ...]
[] -> 空列表
3.列表中的元素:
任何数据类型的数据都可以作为列表中的元素;同一个列表中数据的类型可以不同
4.获取列表中的元素(查)
1)获取单个元素
a.语法
列表[下标] - 获取列表中指定下标对应的元素
b.说明
列表 - 结果是列表的表达式(列表数据、列表变量等)
[] - 固定写法
下标 - 下标又叫索引;列表中每个元素都有固定的下标值来表示元素在列表中的位置。
范围:0 ~ 列表长度-1(正序) ;-1 ~ -列表长度(逆序)
注意:下标不能越界(超过范围)
# 1)获取单个元素
names = ['柯南','夏洛洛', '鸣人', '佐助', '路飞']
print(names[1])
print(names[-4])
print(names[-1])
# print(names[10]) IndexError: list index out of range
2)获取部分元素(切片)
列表切片的结果是列表
a.语法
列表[开始下标:结束下标:步长] - 开始——结束之间每隔步长取一个元素(结束下标之前)
注意:
步长为正:表示开始下标到结束下标是从前往后去,所以开始下标对应的元素必须在结束下标对应的元素的前面,否则人结果为空[]
步长为负:表示开始下标到结束下标是从后往前取,所以开始下标对应的元素必须在结束下标对应的元素的后面,否则人结果为空[]
2)获取部分元素(切片)
names = ['柯南','夏洛洛', '鸣人', '佐助', '路飞','das']
print(names[1:5:1])
print(names[1:5:2])
print(names[5:1:-1])
2.1)省略步长:列表[开始下标:结束下标] - 相当于步长为1
print(names[0:4])
print(names[-4:-1])
2.2) 省略下标
省略开始下标: 列表[:结束下标:步长] / 列表[:结束下标]
省略结束下标: 列表[开始下标::步长] / 列表[开始下标:]
开始,结束都省略:列表[ ::步长] / 列表[ :]
省略开始下标:步长为正,从第一个开始往后取;步长为负,从最后一个元素开始往后取
省略结束下标:步长为正,从开始往后取到结束;步长为负,从开始元素开始往前
print(names[:4])
print(names[:4:-1])
print(names[1:])
print(names[3::-1])
print(names[::-1]) # 逆序
print(names[:]) # 全拷贝
3)遍历
3.1)直接遍历元素
for 变量 in 列表:
循环体
3.2)通过遍历下标来遍历列表元素
len(列表) - 获取列表中元素的个数
for index in range(len(列表))
循环体
for name in names:
print(name)
for i in range(len(names)):
print(i,names[i])
for i in range(-1,-len(names),-1):
print(i,names[i])
5.增 (增加列表中的元素)
1)
列表.append(元素) - 在列白的最后添加一个元素
2)
列表.insert(下标,元素) - 在列表指定下标前插入一个元素
film = ['a', 'b', 'c', 'd', 'e', 'f']
film.append('ssss')
print(film)
print(film.append('ssss')) # None
film.insert(2,'aaa')
print(film)
6.删(删除列表中的元素)
1)
del 列表[下标] - 删除列表中指定下标对应的元素 (下标不能越界)
2)
列表.remove(元素) - 删除列表中第一个指定元素(从前往后匹配到的第一个)
3)
列表.pop(下标) - 取出列表中指定下标对应的元素,会返回被取出的元素
列表pop() - 取出列表中最后一个元素,返回被取出的元素
del film[2]
print(film)
film.remove('ssss')
print(film)
pop_film = film.pop()
print(film, pop_film)
7.改(修改列表中元素的值)
列表[下标] = 新值 (下标不能越界)
film[0] = 'aa'
print(film)
# film[10] = 'nn' IndexError: list assignment index out of range