序列数据结构
- 成员是有序排列的
- 每个元素的位置成为下标或索引
- 通过索引访问序列中的成员
- Python中的序列数据类型有字符串、列表、元组(“abc != bca”)
创建列表和元组
(用来表示多个有序数据)
C语言、java中用数组存放多个有序数据,数据类型必须相同。
Python中的列表和元组,可以存放不同类型的数据或对象,可以理解为超级数组。
- 列表(list):使用 [ ] 表示。
- 元组(tuple):使用 () 表示。
- 两者区别:列表中的值可以改变,元组一经定义,内容不能改变。
tuple_1 = (1) # 表示数字1
tuple_2 = (1,) # 表示只有一个元素的元组
索引
切片
一次性从序列中获取多个元素,得到序列的子集。
[开始位置:结束位置] 切片不包括结束位置的元素
省略开始位置,默认从序列的第一个元素开始。
省略结束位置,默认取到序列中的最后一个元素。
# 字符串切片
str = "abcde"
print(str[1:5]) # 输出 bcde
print(str[:5]) # 省略开始位置,输出 abcde
print(str[2:]) # 省略结束位置,输出 cde
# 列表切片
list_a = [0,1,2,3,4]
print(list_a[2:]) # 输出 [2,3,4]
list_b = [20208223077,"王同学","男",18]
print(list_b[:]) # 输出 [20208223077,"王同学","男",18]
打印
print(序列数据结构名称) 打印整个序列
获取序列长度
len(序列名称 ) 可用于字符串、元组、列表序列的长度获取
print(len("python"))
str_p = "python"
print(len(str_p))
更新列表
向列表中添加元素
- 向列表尾部追加元素 append()
- 向列表中指定位置追加元素insert(指定位置,插入元素)
- 合并列表 extend() 或 "+"运算符
- 删除元素 del语句
- 元素排序 sort() & reverse
# 向列表尾部追加元素 append()
list_1 = [1,2,3]
list_2 = [888]
list_1.append(4) # 将4追加到列表list_1的后面
print(list_1) # 输出 [1,2,3,4]
# 向列表中指定位置追加元素insert(指定位置,插入元素)
list_1.insert(1,5) # 在list_1索引值为1的位置插入5并将后面元素后移
print(list_1) # 输出[1,5,2,3,4]
# 合并列表 extend() 或 "+"运算符
list_1.extend(list_2) #把2合并到1上
print(list_1)
list_add = list_1 + list_2
print(list_add)
# 删除列表元素 del语句
del list_1[1] # 删除下标为 1 的元素
# 元素排序 sort() & reverse
list_1 = [1,2,6,8,3,4,5]
list_1.sort() # 将list_1中的元素按从小到大的顺序排列
print(list_1)
list_1.reverse() # 将list_1中的元素原地逆序
print(list_1)
字典
字典 {键:值,键:值…}
每个字典元素都是一个 键/值对
键: 关键字
值: 关键字对应的取值
字典是一种表示映射关系的数据结构
dic_score = {"语文":80,"数学":95,"English":100}
dic_employ = {"name":"wang","age":22}
dic_employ = {"name":{"姓:":"liu","名":"keai"},"age":18}
print(dic_score) #打印字典
print(dic_score["语文"]) #访问字典中元素
print(dic_employ["name"])
#len(): 获取字典长度
print(len(dic_employ))
#in运算符--判断字典是否存在元素
## 返回一个布尔值
print("English" in dic_score)
print('*'*50)
#遍历字典元素
## keys(): 返回字典中所有的关键字
## values(): 返回字典中所有的值
## iteam(): 返回字典中所有的键值对
## 可以用for循环 遍历字典
for key in dic_score.keys():
print(key,end=" ")
print()
print('-'*50)
for value in dic_employ.values():
print(value,end=" ")
print()
print('-'*50)
for iteam in dic_employ.items():
print(iteam,end=" ")
print()
print('-'*50)
# 格式化输出
for name,course in dic_score.items():
print("王煜豪的%s成绩是:" %(name),course) # 注意!!!
print('*'*50)
#更新字典
dic_score['物理'] = 98
print(dic_score)
dic_score['物理'] = 60 #直接修改物理成绩
print(dic_score)
print('*'*50)
# 合并字典(update):将另一个字典中的元素追加到字典中
dic_stu1 = {"name":'黎明'}
dic_tel = {'tel':15802998101}
dic_stu1.update(dic_tel)
print(dic_stu1)
print('*'*50)
# 删除
## pop(指定元素的关键字)
dic_score.pop("语文")
print(dic_score)
print('-'*50)
## clear():清除字典中所有元素
dic_stu1.clear()
print(dic_stu1)
print('*'*50)
集合(set)
由一组无序排列的元素组成
注:集合中的元素是唯一的,输出会自动清除重复的元素
集合中的元素是无序的,因此不能通过下标来访问
# 可变集合 set()
# 不可变集合 frozenset()
set1 = set("pythonooo")
print(set1)
set2 = frozenset('pythonnnn')
print(set2)
课程链接
https://www.icourse163.org/learn/XUST-1206363802?tid=1206674203#/learn/content?type=detail&id=1213258119&cid=1217410427