1.列表的相关操作
1.列表的加法和乘法
1)加法: list1 + lsit2 – 将两个列表合并
list1 = [10, 20]
list2 = [30, 40]
print(list1 + list2) # [10, 20, 30, 40]
1)乘法: list * N – 将列表重复N次产生新列表
print(list1 * 3) # [10, 20, 10, 20, 10, 20]
in 和 not in
语法:
数据 in 列表 – 判断列表中存在对应元素
数据 not in 列表 – 判断列表中不存在对应元素
print(10 in list1) # True
print(10 not in list1) # False
2.相关函数
1)max(列表) min(列表)
list1 = [10, 230, 45, 670, 91]
print(max(list1), min(list1)) # 670 10
2)sorted(列表) – 升序排序
sorted(列表, reverse=True) – 降序排序
print(sorted(list1)) # [10, 45, 91, 230, 670]
print(sorted(list1, reverse=True)) # [670, 230, 91, 45, 10]
3)len(列表) – 获取列表长度
print(len(list1)) # 5
4)list(数据) – 将指定数据转换成列表,数据必须是序列
所有的序列都可以转换成为列表,序列中的元素就是列表中的元素
print(list('abc')) # ['a', 'b', 'c']
print(list(range(5))) # [0, 1, 2, 3, 4]
2.字典
字典 – 通过键值对保存数据
需要同时保存多个意义不同的数据就使用字典,保存意义相同数据的时候就用列表
stu = {'name': '小明', 'age': 18, '身高': 178, '体重': 130}
print(stu['name']) # 小明
print(stu['age']) # 18
什么是字典(dict)
容器:将{}作为容器的标志,里面多个键值对用 ’,‘ 隔开 – {key1: vale1, key2: value2, key3: value3 …}
字典是可变的(支持增删改查)
字典是无序的(顺序不影响结果;不支持索引操作)
key的要求:a.不可变类型的数据(数字,字符串,bool,None,元组),一般使用使用字符串作为key。
b.key在字典中是唯一的
value的要求:没有要求(可以是任何类型,可以重复)
# 空字典
dict1 = {}
# 字典的无序性
print({'a': 1, 'b': 2} == {'b': 2, 'a': 1}) # True
# 键的特性
dict2 = {1: 10, '1': 10, True: False, None: "空"}
print(dict2) # {1: False, '1': 10, None: '空'}
# dict2 = {1: 10, '1': 10, True: False, None: "空", [10, 20]: 10} # TypeError: unhashable type: 'list'
# 键是唯一的
dict4 = {'a': 10, 'b': 20, 'c': 30}
print(dict4) # {'a': 10, 'b': 20, 'c': 30}
dict5 = {'a': 10, 'b': 20, 'c': 30, 'a': 50}
print(dict5) # {'a': 50, 'b': 20, 'c': 30}
查字典 – 获取字典的值
查单个 – 一个一个获取字典的值
a. 字典[键] - 获取字典中指定键对应的值,键不存在会报错
b. 字典.get(键) - 获取字典中指定键对应的值,键不存在会返回None
字典.get(键, 默认值) - 获取字典中指定键对应的值,键不存在会返回默认值
区别: 要不存在的键表现不同
dog = {'name': "旺财", 'age': 3, 'breed': "土狗", 'color': "黄色", 'gender': "母狗"}
print(dog['age']) # 3
print(dog['gender']) # 母狗
print(dog.get('age')) # 3
print(dog.get('gender')) # 母狗
遍历 – 一个一个得获取所有值
for 变量 in 字典:
循环体(变量依次取到的是字典的键)
dog = {'name': "旺财", 'age': 3, 'breed': "土狗", 'color': "黄色", 'gender': "母狗"}
for i in dog:
print(i, dog[i]) # name 旺财 age 3 breed 土狗 color 黄色 gender 母狗
- 增
1)字典[键] = 值 – 如果键不存在就往字典中添加键值对
dog = {'name': "旺财", 'age': 3, 'breed': "土狗", 'color': "黄色", 'gender': "母狗"}
print(dog) # {'name': "旺财", 'age': 3, 'breed': "土狗", 'color': "黄色", 'gender': "母狗"}
dog['weight'] = 10
print(dog) # {'name': '旺财', 'age': 3, 'breed': '土狗', 'color': '黄色', 'gender': '母狗', 'weight': 10}
2)字典.setdefault(键, 值) – 在字典中添加键值对(键如果存在,不会修改键对应的值)
dog = {'name': "旺财", 'age': 3, 'breed': "土狗", 'color': "黄色", 'gender': "母狗"}
dog.setdefault('weight', 10)
print(dog) # {'name': '旺财', 'age': 3, 'breed': '土狗', 'color': '黄色', 'gender': '母狗', 'weight': 10}
dog.setdefault('weight', 20)
print(dog) # {'name': '旺财', 'age': 3, 'breed': '土狗', 'color': '黄色', 'gender': '母狗', 'weight': 10}
改
1)字典[键] = 值 – 如果键存在,就修改键对应的值
dog = {'name': "旺财", 'age': 3, 'breed': "土狗", 'color': "黄色", 'gender': "母狗"}
print(dog) # {'name': '旺财', 'age': 3, 'breed': '土狗', 'color': '黄色', 'gender': '母狗'}
dog['age'] = 20
print(dog) # {'name': '旺财', 'age': 20, 'breed': '土狗', 'color': '黄色', 'gender': '母狗'}
删 – 删除键值对
1) del 字典[键] – 删除字典中指定的键对应的键值对
dog = {'name': "旺财", 'age': 3, 'breed': "土狗", 'color': "黄色", 'gender': "母狗"}
print(dog) # {'name': '旺财', 'age': 3, 'breed': '土狗', 'color': '黄色', 'gender': '母狗'}
del dog['name']
print(dog) # {'age': 3, 'breed': '土狗', 'color': '黄色', 'gender': '母狗'}
- 字典.pop(键) – 取走字典中指定键对应的值
dog = {'name': "旺财", 'age': 3, 'breed': "土狗", 'color': "黄色", 'gender': "母狗"}
print(dog) # {'name': '旺财', 'age': 3, 'breed': '土狗', 'color': '黄色', 'gender': '母狗'}
result = dog.pop('name')
print(dog) # {'age': 3, 'breed': '土狗', 'color': '黄色', 'gender': '母狗'}
print(result) # 旺财
3.字符串和元组
- 字符串
容器: 将 “” 或者 ‘’ 作为容器的标志,里面的每一个符号就是字符串的元素
字符串不可变;字符串是有序的;支持索引操作
元素:字符串的元素有叫字符,分为普通字符和转义字符
普通字符:写的什么就打印什么
转义字符:以 \ 开头,带有特殊意义的字符# 'abc' : 普通字符 # '\n' : 转义字符
字符串操作
字符串获取元素的方法和列表一样
msg = "hello world!"
for i in msg:
print(i)
print(msg[-1]) # !
元组
元组就是不可变的列表(元素1, 元素2, 元素3, …)
# 元组的定义
tulpe1 =(1, 22, 45, 90)