10 常见数据结构
- 列表
a) 加法运算 - 将两个列表合并成一个新的列表
list1 = [10, 20, 30]
list2 = [100, 200]
print(list1 + list2) # [10, 20, 30, 100, 200]
b) 乘法运算 - 将列表中的元素重复N次产生一个新的列表
list1 = [10, 20, 30]
print(list1*3) # [10, 20, 30, 10, 20, 30, 10, 20, 30]
c) in - 判断列表中是否存在指定数据对应的元素
list1 = [10, 20, 30]
print(10 in list1) # True
print(11 in list1) # False
print([10,20] in list1) #False
d) not in - 判断列表中是否不存在指定数据对应的元素
# 练习:已知一个列表保存了多个学生的姓名,要求去掉列表中重复的名字
names = ['小明', '张三', '李四', '张三', '张三', '小明', '王五', '王五']
list1 = []
for i in names:
if i not in list1:
list1.append(i)
print(list1) # ['小明', '张三', '李四', '王五']
e) max(列表)、min(列表) - 求最大最小值
f) sorted(列表) - 将列表中的元素从小到大排序,产生一个新的列表,不会修改原列表中的数据,产生一个新的列表
sorted(列表,reverse = True) - 从大到小
g) len(列表) - 获取列表长度(列表中元素的个数)
f) list(数据) - 将指定的数据转换成列表(所有的序列都能转换成列表) 例如:字符串、range、元组、字典
- 字典
a) 字典存在的价值
# 定义一个变量保存学生的信息
# 假设用列表存信息,不明确每个元素的意思
stu = ['小明', 25, '男', 170, 70, 80]
# 用字典就解决了不明确信息的问题(同时保存多个意义不同的数据)
stu2 = {'name' : '小明','age': 25, '身高': 170,'体重': 70}
b) 什么是字典(dict) - 将{}作为容器的标志,里面多个键值对用逗号隔开(一个键值对就是一个元素) - {键1 : 值1, 键2 : 值2…}可变的(支持增删改);字典无序(顺序不影响结果);不支持下标操作
(1) 键的要求,不可变的数据才能作为字典的键(数据、字符串、bool、空值、元组),一般使用字符串作为字典键
(2) 键是唯一的 (后来者居上) 同样的键覆盖以前的键
(3) 值得要求
c) 空字典
dict1 = {}
d) 字典是无序的
print({'a': 10, 'b': 20} == {'b': 20, 'a':10}) #True
e) 字典的键必须是不可变类型的数据
# 正常运行
dict = {1: 10, 'a': 20, True: 30, None: 40, (10,20): 50}
# 报错
dict = {1: 10, 'a': 20, True: 30, None: 40, (10,20): 50}
f) 字典的增删改查
'''
1.查 - 获取字典的值
1) 查单个 - 获取一个的值
a. 字典[键] - 获取字典中指定对应值,如果键不存在会报错
b. 字典.get(键) - 获取字典中指定对应值,如果键不存在返回None
c. 字典.get(键,默认值) - 获取字典中指定对应值,如果键不存在返回默认值
'''
dog = {'name': '旺财', 'age': 3, 'breed': '土狗'}
dog['age'] # 获取年龄的值 不存在会报错
dog.get('age') # 获取年龄的值 不存在不会报错,返回None
dog.get('age',0) # 获取年龄的值 不存在不会报错,返回0
'''
2) 遍历 - 一个一个获取所有的值
for 变量 in 字典:
循环体
'''
dog = {'name': '旺财', 'age': 3, 'breed': '土狗'}
for i in dog:
print(i,dog[x])
'''
# 2.增
1) 字典[键] = 值 - 如果键不在就在字典中添加键值对
如果键存在就在字典中修改值
dog['weight'] = 10
print(dog)
2) 字典.setdefault(键,值) - 如果键存在不会修改
不存在就添加键值对
'''
'''
# 3.改
1) 字典[键] = 值 - 如果键存在就在字典中修改值
'''
# 4.删 - 删除键值对
# 1) del 字典[键] - 删除字典中指定对应的键值对
# 2) 字典.pop(键) - 取走字典中指定键对应的值
- 字符串 - 容器;将’'或者""作为容器的标志,里面的每一个符号就是字符串中的每个元素,例如:‘abc’。字符串是不可变的,字符串是有序的(支持下标操作),字符串中的元素又叫字符,分为普通字符和转义字符两种
- 常见转义字符
- \n - 换行
- \t - 水平制表符
- 字符串查操作(跟列表操作一样)
- 常见转义字符
- 元组 - 元组就是不可变的列表:(元素1,元素2,元素3…)