列表
1.列表, 容器,可以存放多个数据,可以是不同类型
2.语法: 变量名 = [数据1, 数据2, 数据3, …]
3. 支持下标操作, 支持切片操作
4. 列表中的数据(元素)是以逗号分隔的
5. 定义空列表:
my_list = list()
my_list = []
# 变量名 = [数据1, 数据2, 数据3, ...]
my_list = ['qym', 18, 3.14, True]
print(my_list)
print(type(my_list)) # <class "list">
# 列表支持下标操作
age = my_list[1]
print(age) # 18
# 支持切片, 得到的数据, 类型也是列表
my_list1 = my_list[0:2]
print(my_list)
print(my_list) # "qym", 18
print(type(my_list1)) # <class int>
# 定义一个空列表
my_list2 = []
print(my_list, type(my_list2))
my_list3 = list()
print(my_list, type(my_list)
列表的遍历
# for 遍历循环
for i in my_list:
# i 就是列表中的每一个数据
print(i)
# while 循环遍历
i = 0 # i是下标
# 最后一个元素的正数是len() - 1
while i < len(m_list):
print(my_list[i])
i += 1
列表 - 修改元素
# 通过下标修改列表中的数据
# 定义一个列表
my_list = ["qym", 18, 3.14, True]
# 把18改成19
my_list[1] = 19
print(my_list)
# my_list[100] = 10 列表中下标没有到100 程序报错,下标越界
列表 - 增加元素
# 1. append
# 在尾部添加数据, 直接在原列表中添加, 不会返回新的列表
# 列表名.append(数据) 将数据追加到列表的最后
# 2. insert
# 在指定位置添加
# insert(index, data) 在下标为index的位置添加数据data
# 3. extend(可迭代对象) 会将可迭代对象的每一个元素分别放到列表的末尾
# extend(字符串)
# extend(列表) # 最常用
my_list = []
# 尾部追加元素'郭德纲'
result = my_list.append('郭德纲')
print("my_list", my_list)
print("result", result) # None 是关键字, 空, 什么都不是
# print(my_list.append('岳岳')) # None
my_list.append('岳岳')
print(my_list)
# insert 指定位置添加
# 在下标为1的位置添加元素 '于谦'
my_list.insert(1, '于谦')
print('my_list', my_list) # my_list ['郭德纲', '于谦', '岳岳']
# 在下标为 -2 的位置添加元素 'hello'
my_list.insert(-2, 'hello')
print(my_list) # ['郭德纲', 'hello', '于谦', '岳岳']
my_list.insert(100, 'a') # 下标不存在, 在最后的位置添加元素
print(my_list) # ['郭德纲', 'hello', '于谦', '岳岳', 'a']
# extend
my_list.extend(['九零', 'isaac'])
print(my_list) # ['郭德纲', 'hello', '于谦', '岳岳', 'a', '九零', 'isaac']
my_list.extend('python')
print(my_list) # ['郭德纲', 'hello', '于谦', '岳岳', 'a', '九零', 'isaac', 'p', 'y', 't', 'h', 'o', 'n']
列表 - 查找元素
# 列表中没有 find 方法
# index() 查找元素的下标, 找到返回下标的值, 没有找到程序会报错
my_list = ['郭德纲', '于谦', '岳岳']
result = my_list.index('岳岳')
print(result) # 2
# count 统计出现的次数
num = my_list.count('岳岳')
print(num) # 1
# in not in 返回的是 bool 类型
# in 判断是否存在 存在, 返回True 不存在, 返回False
# not in 判断是否存在 不存在,返回True 存在, 返回False
if '岳岳' in my_list:
print("在")
else:
print("不在") # 在
if "加油" not in my_list:
# 条件是True
print('不在')
else:
print('在') # 不在
列表 - 删除元素
# 根据元素值删除
# remove(data)
my_list = [1, 2, 3, 4, 5, 6, 7, 8]
# 删除5
my_list.remove(5)
print(my_list) # [1, 2, 3, 4, 6, 7, 8]
my_list.remove(5) # 程序报错,删除不存在的元素
# 根据下标删除元素, 删除不存在的下标, 程序会报错
# del 列表名[下标]
# 删除2
del my_list[1]
print(my_list) # [1, 3, 4, 6, 7, 8]
# 列表.pop() 删除最后一个元素,返回删除的元素
num = my_list.pop(
print(num) # 8
print(my_list) # [1, 3, 4, 6, 7]
# 列表.pop(下标)
num1 = my_list.pop(1) # 删除3
print(num1) # 3
print(my_list) # [1, 4, 6, 7]
列表 - 排序元素
# 1. 列表名.sort() 直接在原列表中排序
my_list = [1, 3, 5, 7, 9, 2, 4, 6, 8, 10]
my_list.sort() # 从小到大 升序
print(my_list) #[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
my_list.sort(reversre=True) # 从大到小 降序
print(my_list) # [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
# 2. sorted(列表), 会返回一个新的列表
my_list1 = [1, 3, 5, 7, 9, 2, 4, 6, 8, 10]
my_list2 = sorted(my_list1)
print("my_list1", my_list1) # my_list1 [1, 3, 5, 7, 9, 2, 4, 6, 8, 10]
print("my_list2", my_list2) # 升序 my_list2 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
my_list3 = sorted(my_list1, reverse=True)
print("my_list1", my_list1) # my_list1 [1, 3, 5, 7, 9, 2, 4, 6, 8, 10]
print("my_list3", my_list3) # 降序 my_list3 my_list3 [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
# reverse( ) 函数(方法)
my_list4 = [1, 3, 5, 7, 9, 2, 4, 6, 8, 10]
my_list.reverse() # 逆置(反转)
print(my_list4) # [10, 8, 6, 4, 2, 9, 7, 5, 3, 1]
列表 - 嵌套
school_names = [['北京大学', '清华大学'],
['南开大学', '天津大学', '天津师范大学'],
['山东大学', '中国海洋大学']]
# ['南开大学', '天津大学', '天津师范大学']
tianjin = school_names[1]
tianjin[1]
school = tianjin[1]
print(school) # 天津大学
print(school_names[1][1]) # 天津大学
print(school_names[2][1]) # 中国海洋大学
# 遍历出每一个学校
# 定义一个变量city, city 用来读取 school_names 中的元素
for city in school_names: # city 列表
# 定义一个变量 school, school用来保存 city 中的元素
for school in city:
print(school) # 输出列表中每一个学校: 北京大学 清华大学 南开大学 天津大学 天津师范大学 山东大学 中国海洋大学