今天我们还是像往常一样,以图片和实例的形式带大家了解一些基础知识
多维列表
内存结构图:
实例:
# 多维列表
# 之前我们使用的列表就是一维 比如 a = [1,2,3,4,5,6] 接下来我们来了解一下二维
a = [
["小明", 18, 30000],
["小刚", 19, 30000],
["小红", 16, 30000]
]
# 怎么引用?
print(a[0][2]) # a列表中的第一个元素中的第二个元素 打印结果:30000
# 第一个中括号 代表第一层的第几个元素 第二个中括号 代表第二层的第几个元素(以此类推,没有继续引入则抛出异常)
# 怎么打印
for m in range(3):
for n in range(3):
print(a[m][n], end="\t")
print() # 打印完这一行,换行
# 打印结果
# 小明 18 30000
# 小刚 19 30000
# 小红 16 30000
元祖
实例:
# 元祖 tuple
a = (10, 20, 30) # 此处括号能省略(注:只有一个元素的时候需加一个逗号 例如:a = (10,)括号也可以省略)
print(type(a))
# 通过tuple()创建元祖
a = tuple()
print(a) # 输出结果 () 一个空的元祖
#
b = tuple("abc")
print(b) # 输出结果 ('a', 'b', 'c')
#
b = tuple(range(0, 3))
print(b) # 输出结果 (0, 1, 2)
# 元祖对象的删除
del b
del a
元祖的元素访问和计数
实例:
# 元祖的元素访问和计数
c = (10, 20, 34, 43, 24)
c[3] = 33 # 元祖元素不能修改
print(c) # 直接报错
# 元祖排序 sorted()
a = (20, 239, 1203, 1)
print(sorted(a)) # 输出结果:[1, 20, 239, 1203]
# zip 把列表转换为元祖
a = [10, 20, 30]
b = [40, 50, 60]
c = [70, 80, 90]
d = zip(a, b, c)
print(list(d)) # 输出结果:[(10, 40, 70), (20, 50, 80), (30, 60, 90)]
# 推导式
a = (x*2 for x in range(10))
print(tuple(a)) # 转为元祖打印 输出结果:(0, 2, 4, 6, 8, 10, 12, 14, 16, 18)
元祖总结:
字典
实例:
# 方式一
a = {"name": "小明", "age": 18, "address": "青青草原"}
print(a) # 返回结果 :{'name': '小明', 'age': 18, 'address': '青青草原'}
# # 方式二
b = dict(name="大聪明", age=18, address="狼堡")
print(b) # 返回结果 : {'name': '大聪明', 'age': 18, 'address': '狼堡'}
# # 方式三
c = dict([("name", "小明"), ("age", 18)])
print(c) # 输出结果:{'name': '小明', 'age': 18}
# 通过zip创建字典对象
a = ["name", "age", "job"]
b = ["小明", 18, "哈哈哈"]
c = dict(zip(a, b))
print(c) # 输出结果:{'name': '小明', 'age': 18, 'job': '哈哈哈'}
# 通过fromkeys创建值为空的字典
d = dict.fromkeys(["name", "age", "address"])
print(d) # 创建值为空的字典(键定义好的,但值为None)
字典元素的访问
实例:
# 字典元素的访问
a = dict(name="小明", age=18, address="青青草原") # 定义一个字典
# 拿值方式一
print(a["name"]) # 根据键拿值(这里键如果在字典中不存在就会抛出异常)
# 方式二
print(a.get("age")) # 使用get拿值的好处(如果键不存在不会报错,返回None)
print(a.get("aga", "大傻逼")) # 设置默认值(当键不存在字典中的时候则返回默认值)
# # 列出全部键值对
print(a.items()) # 输出结果:dict_items([('name', '许明洋'), ('age', 18), ('address', '青青草原')])
#
# # 列出所有的键
print(a.keys()) # 输出结果:dict_keys(['name', 'age', 'address'])
#
# # 列出所有的值
print(a.values()) # 输出结果:dict_values(['许明洋', 18, '青青草原'])
#
# # 键值对的个数 len()
print(len(a)) # 输出结果:3
#
# # 判断键是否存在于字典中
print("name" in a) # 返回False/True 输出结果:True
字典元素添加、修改、删除
实例:
# 给字典新增"键值对" 注:如果键已经存在,则覆盖旧的键 如果键不存在,则新增”键值对“
a = {'name': '小明', 'age': 18, 'address': '青青草原'}
a["jop"] = "教师"
a["age"] = 16
print(a) # 输出结果:{'name': '小明', 'age': 16, 'address': '青青草原', 'jop': '教师'}
# update() 使用update()将新字典中所有的键值对全部添加到旧字典对象上,如果key有重复,则直接覆盖
a = {'name': '小明', 'age': 18, 'address': '青青草原'}
b = {'name': '小刚', 'age': 17, 'jop': '学生'}
a.update(b)
print(a) # 输出结果:{'name': '小刚', 'age': 17, 'address': '青青草原', 'jop': '学生'}
# del() clear() pop() popitem() 字典元素的删除
a = {'name': '小明', 'age': 18, 'address': '青青草原'}
del(a["name"])
print(a) # 输出结果:{'age': 18, 'address': '青青草原'}
a.pop("address") # 可用于赋值
print(a) # 输出结果:{'age': 18}
# 清空字典
a.clear()
print(a) # 输出结果:{}
# 随机删除
a.popitem()
print(a) # 输出结果:{'age': 18}
序列解包
实例:
# 序列解包
x, y, z = (20, 10, 30)
print(x) # 输出结果:20
print(y) # 输出结果:10
print(z) # 输出结果:30
a = {'name': '小明', 'age': 18, 'address': '青青草原'}
d, b, c = a.values() # 依次把字典的value值赋值到dbc
print(b) # 通过dbc打印出来 # 输出结果:18
d, b, c = a.items() # 依次把字典的键值对赋值到dbc
print(c) # 通过dbc打印出来 可以通过c[0] 或者 c[1]拿值 # 输出结果:('address', '青青草原')
表格数据使用字典和列表存储,并实现访问
实例:
# 表格数据使用字典和列表存储,并实现访问
r1 = {"name": "许明洋", "age": 18, "address": "天天加油"}
r2 = {"name": "欧阳钦", "age": 48, "address": "天天加油1"}
r3 = {"name": "张文涛", "age": 28, "address": "天天加油2"}
a = [r1, r2, r3]
#
# # 获得第二行的年龄
print(a[1].get("age")) # 输出结果:48
好啦,我们下期见