列表与字典
1、列表的修改
# name_list = ['张三', '李四', '王五','赵六']
# print(name_list)
# print(name_list[0])
# name_list[0] = '阿坤' # 只需要将值重新赋值即可
# print(name_list) # 打印 只是去检测 我们上面写的代码 做的修改 到底有没有执行
# nums = [40, 36, 89, 2, 36, 100, 7]
# # 修改第 1~4 个元素的值(不包括第4个元素)
# nums[1: 4] = [45.25, -77, -52.5]
# print(nums)
"""reverse()函数的使用"""
# num_list = [1, 5, 2, 3, 6, 8]
# print(num_list)
# num_list.reverse()
# print(num_list)
# [8, 6, 3, 2, 5, 1]
"""sort()函数的使用"""
# 列表序列.sort(reverse=False)
# li = [2, 3, 5, 6, 1, 4, 8]
# li.sort(reverse=False) # li.sort()不写值默认 reverse=False reverse颠倒 升序
# print(li)
# # [1, 2, 3, 4, 5, 6, 8]
#
# li.sort(reverse=True) # 降序
# print(li)
# [8, 6, 5, 4, 3, 2, 1]
2、列表的循环遍历
# for循环遍历列表
name_list = ['张三', '李四', '王五', '赵六']
for i in name_list: # 用于专门遍历可迭代对象
print(i, end=' ')
# while循环遍历列表
i = 0
name_list = ['Tom', 'Lily', 'Rose'] # 0 1 2
while i < len(name_list):
print(name_list[i], end=' ')
i += 1
3、列表的嵌套
# 找到篮球
name_list = [
['张三', '李四', '阿坤'],
['唱', '跳', '篮球'],
['甲', '乙', '丙']
]
# 第⼀步:按下标查找到篮球所在的列表
# print(name_list[1])
# 第⼆步:从李四所在的列表⾥⾯,再按下标找到数据李四
# print(name_list[1][2])
# a = [1, 2, 3, 4, 5, 6, 7]
# print(a.reverse()) # 为什么打印结果为None 因为没有返回值
# print(a) # 这样写才会打印
# None 空值
# def xxx():
# print('我很美!')
#
# # xxx()
# print(xxx()) # 没有返回值
a = '123456789'
print(a.replace('1', '0')) # 返回值 返回的是一个新的字符串
print(a) # 打印的还是原字符串
4、元组的创建
# tup = (1, 2, 3)
# tup2 = (1,)
# tup4 = (1) # 实际上是个整型
# print(tup4, type(tup4))
# print(type(tup), type(tup2))
# tup1 = tuple("hello")
# print(tup1)
# tup = (1, 2, 3, 4, 5, 6, 7, 8, 9)
# print(tup[2]) # 和列表访问元素语法一致
# tup[2] = '3' # 不支持修改
# print(tup) # 报错
tuple2 = (10, 20, ['aa', 'bb', 'cc'], 50, 30)
# print(tuple2)
# li = list(tuple2)
# li[0] = 100
# print(tuple(li))
# print(tuple2)
# print(tuple2[2]) # 访问到列表
# # ['aa', 'bb', 'cc']
# tuple2[2][0] = 'aaaaa'
# print(tuple2)
# # (10, 20, ['aaaaa', 'bb', 'cc'], 50, 30)
5、可变与不可变数据类型
"""数值"""
a = 1
print(a, id(a))
a = a + 1
print(a, id(a))
"""字符串"""
b = '1'
print(b, id(b))
b = b.upper()
print(b, id(b))
"""列表"""
li = [1, 2, 3, 4, 5]
print(li, id(li))
li.append(6)
print(li, id(li))
"""元组"""
tup = (1, 2, 3, [4, 5])
print(tup, id(tup))
tup[-1].append(6)
print(tup, id(tup))
6、字典的创建
# li = [
# ['小红',22,150,150],
# ['小蓝',22,165,145],
# ['小紫',24,160,100]
# ]
# li2 = [
# {'姓名':'小红','年龄':22,'身高':'150cm','体重':'150斤'},
# {},
# {},
# {}
# ]
# 手动
# dict1 = {'name': '张三', 'age': 20, 'gender': '男'}
# 自动
# a_dict = dict(name='DYX', age=24) # 键=值对
# print(a_dict, type(a_dict)) # {'age': 24, 'name': 'DYX'}
# 创建空字典 空列表 空元组
# dic = {}
# li = []
# tup = ()
# print(type(dic), type(li), type(tup))
"""关于我们字典的键和值"""
# dict1 = {'name': '张三', 'age': 23, 'gender': '男'}
# print(dict1) # 字典中键是唯一的 字符串 数值 元组 且必须是不可变的类型
# 值可以是任意类型的
# dict1 = {'name': '张三', 'age': 20, 'gender': '男'}
# print(dict1['name']) # 张三
# # print(dict1['id']) # 报错
# print(dict1.get('name111')) # 如果说没有找到 会返回None值 而并不会报错
# 字典序列.get(key, 默认值)
# dict1 = {'name': '张三', 'age': 20, 'gender': '男'}
# print(dict1.get('name')) # 张三
# print(dict1.get('id', 110)) # 110
# print(dict1.get('id')) # None
# 获取所有的键
dict1 = {'name': '张三', 'age': 20, 'gender': '男'}
print(dict1.keys()) # dict_keys(['name', 'age', 'gender'])
# 获取所有的值
dict1 = {'name': '张三', 'age': 20, 'gender': '男'}
print(dict1.values()) # dict_values(['张三', 20, '男'])
# 获取所有的键值对
dict1 = {'name': '张三', 'age': 20, 'gender': '男'} # 键在命名是尽量的保证见名知意
print(dict1.items()) # dict_items([('name', '张三'), ('age', 20), ('gender','男')])
for i, j in dict1.items():
print(i, j, end=' ')
# name 张三 age 20 gender 男
7、字典的增加与修改
# dict1 = {'name': '张三', 'age': 20, 'gender': '男'}
# dict1['name'] = '阿美' # 修改 重新赋值
# print(dict1)
# dict1['money'] = 20000 # 当我这个字典中的键不存在是 我重新赋值就相当于添加
# print(dict1)
"""update方法"""
a_dict = {'ranking': [98, 97], 'age': 24, 'name': 'ABC', 'sex': 'male'}
# a_dict1 = {[1, 2]: [98, 97], 'age': 24, 'name': 'ABC', 'sex': 'male'}
# print(a_dict1) # 打印会报错 TypeError: unhashable type: 'list'
# 字典中的“值”可以是列表、数字、字符串元组等等,是很宽泛的
# 字典中的“键”要注意不能使用列表、集合、字典作为字典的“键”
print(a_dict.items())
# dict_items([('sex', 'male'), ('age', 24), ('name', 'DYX'), ('ranking', [98, 97])])
a_dict.update({'a': 'a', 'b': 'b', 'name': 'DYXXXX'}) # 没有则新增 有则覆盖
print(a_dict) # 查看添加后的字典
# {'sex': 'male', 'age': 24, 'ranking': [98, 97], 'name': 'DYX', 'a': 'a', 'b': 'b'}
8、练习:
1,办公室里有张三, 李四, 王五3个人, 现在小宋也到班公室来上班了,如何用列表来表示?并输出办公室有哪些人;
2,过了一会, 王五有事离开了办公室, 程序应该如何表达?并输出办公室有哪些人
li1 = ['张三', '李四', '王五']
li1.append('小宋')
li2 = str(li1).strip('[').strip(']').replace("'", '')
print(f"小宋也到班公室来上班了,所以办公室里的人有:{li2}")
li3 = li2.replace(' 王五,', '')
print(f"因王五有事离开办公室,所以办公室里还剩下:{li3}")
运行结果: