python 列表 的相关操作(增删改查, 排序, 嵌套)

列表

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)  # 输出列表中每一个学校: 北京大学 清华大学 南开大学 天津大学 天津师范大学 山东大学 中国海洋大学
发布了56 篇原创文章 · 获赞 17 · 访问量 2176

猜你喜欢

转载自blog.csdn.net/LanlanDeming/article/details/103330803