序列是Python中最基本的数据结构,序列是一种数据存储方式,用来存储一系列的数据。在内存中,序列就是一块用来存放多个值的连续的内存空间,比如一个整数序列 [10,20,30,40]
Python 中的序列类型包括列表(list),元组(tuple),字典(dict)和集合(set)。
一、列表
-
列表的定义
列表:按顺序保存元素,所有的元素占用一块连续的内存,每个元素都有自己的索引,因此列表和元组的元素都可以通过索引(index)来访问。
user_list = ["Zhangsan","Lisi","Wangwu"] data_list = ["1","2","3","4"]
2.常用方法
# 1. 【追加】 在原列表中尾部追加值 user_list = [] user1 = input("请输入姓名:") user2 = input("请输入姓名:") user_list.append(user1) user_list.append(user2) print(user_list) # 2. 【插入】 在原列表的指定索引位置插入值 number_list = [1,2,3] number_list.insert(0,4) number_list.insert(2,7) print(number_list)# [4, 1, 7, 2, 3] # 3. 【扩展】 在一个列表中插入另一个列表 number_list1 = [2,4,6] number_list2 = [1,3,7] number_list1.extend(number_list2) print(number_list1 ) # [2, 4, 6, 1, 3, 7] # 4. 在原列表中删除指定值 number_list = [2, 4, 6, 1, 3, 7] number_list.remove(4) print(number_list) # [2, 6, 1, 3, 7] # 5. 在原列表中根据索引删除某个元素 number_list = [2, 4, 6, 1, 3, 7] data = number_list.pop() # 删除number_list列表最后一个值,并将删除的值赋给data result = number_list.pop(2) # 删除number_list列表中索引为2的值,并将删除的值赋得result # 6. 清空原列表 number_list = [2, 4, 6, 1, 3, 7] number_list.clear() # 7. 反转原列表 user_list = ["张三丰", "金毛狮王", "阳顶天", "白眉鹰王"] user_list.reverse() print(user_list) # ['白眉鹰王', '阳顶天', '金毛狮王', '张三丰']
3. 转为列表
如果想要让某些元素转换为列表类型,一般需要通过list强转,他的内部其实就是循环每个元素,再将元素追加到列表中,所以想要转换为列表类型有要求:必须可以被循环的元素才能转换为列表。
message = "今天的天气真不错" data = list(message) print(data) # ['今', '天', '的', '天', '气', '真', '不', '错']
4、其它功能
# 获取长度 data = [1, 4, 2, 6, 8, 7, 9] print(len(data)) # 7 # 索引 user_list = ["张三丰", "金毛狮王", "阳顶天", "白眉鹰王"] print(user_list[0]) # 张三丰 print(user_list[-1]) # 白眉鹰王 # 根据索引删除元素 number_list = [4, 5, 2, 9, 8, 6] del number_list[0] print(number_list) # [5, 2, 9, 8, 6] # 根据索引替换元素 result = ["北京", "上海", "深圳", "广州"] result[0] = "天朝" print(result) # ['天朝', '上海', '深圳', '广州'] # 切片 name_list = ["杨过", "小龙女", "周伯通", "欧阳锋", "黄药师", "一灯", "洪七公"] print(name_list[0:2]) # ['杨过', '小龙女'] # 步长 print(name_list[0:6:2]) # ['杨过', '周伯通', '黄药师'] # for循环 data_list = ["华为", "中兴", "联想", "小米", "oppo", "vivo"] for item in data_list: if item == "小米": print("小米为发烧而生")
二、元组
1. 元组的定义
元组(tuple)是Python中另一个重要的序列结构,和列表类似,元组也是由一系列按特定顺序排序的元素组成。元组也可以看做是不可变的列表,通常情况下,元组用于保存无需修改的内容。
元组与列表的区别:
-
列表的元素是可以更改的,包括修改元素值,删除和插入元素,所以列表是可变序列;
-
元组一旦被创建,它的元素就不可更改了,所以元组是不可变序列。
v1 = (1, 2, 3, 4) v2 = ("张三丰", "张无忌", "金毛狮王", "白眉鹰王") v3 = ("abc", )
2.转换
name = "金毛狮王" data = tuple(name) print(data) # ('金','毛','狮','王')
3.其它功能
# 获取长度 data = (1, 4, 2, 6, 8, 7, 9) print(len(data)) # 7 # 索引 user_list = ("张三丰", "金毛狮王", "阳顶天", "白眉鹰王") print(user_list[0]) # 张三丰 print(user_list[-1]) # 白眉鹰王 # 切片 name_list = ("杨过", "小龙女", "周伯通", "欧阳锋", "黄药师", "一灯", "洪七公") print(name_list[0:2]) # ('杨过', '小龙女') # 步长 print(name_list[0:6:2]) # ('杨过', '周伯通', '黄药师') # for循环 data_list = ("华为", "中兴", "联想", "小米", "oppo", "vivo") for item in data_list: if item == "小米": print("小米为发烧而生")
4.嵌套
message = ("今天天气不错","气温刚刚好","('24度','不冷不热')")
data1 = message[0] data2 = message[2] data3 = message[2][0] data4 = message[2][1]
三、字典
字典(dict)是一种无序的、可变的序列,它的元素以“键值对(key-value)”的形式存储。字典中,习惯将各元素对应的索引称为键(key),各个键对应的元素称为值(value),键及其关联的值称为“键值对”。
1. 字典的定义
students = {"name": "张三", "age": 12, "sex": "男"} department_dict = { "技术部": ["张三", "李四", "王五"], "市场部": ["赵六", "孙七"], "财务部": ["周八"] } user_info = { "张三": {"id": 1, "sex": "男", "age": 12}, "李四": {"id": 2, "sex": "女", "age": 14}, "王五": {"id": 3, "sex": "男", "age": 13} } print(department_dict["技术部"]) # ['张三', '李四', '王五'] print(department_dict["技术部"][1]) # 李四 print(user_info["张三"]) # {'id': 1, 'sex': '男', 'age': 12}
2.常用方法
student = {"name": "张三", "age": 12, "sex": "男"} # 所有的键 data_key = student.keys() print(data_key) # dict_keys(['name', 'age', 'sex']) # 所有的值 data_value = student.values() print(data_value) # dict_values(['张三', 12, '男']) # 所有的键值 data_items = student.items() print(data_items) # dict_items([('name', '张三'), ('age', 12), ('sex', '男')]) # 根据键获取值 data = student.get("name") # 张三 print(data) # 更新字典的键值对 student.update({"name": "李四", "age": 13, "sex": "女"}) print(student) # {'name': '李四', 'age': 13, 'sex': '女'} # 移除字典的键值对 result = student.pop("sex") print(result) # 女 print(student) # {'name': '李四', 'age': 13}