python基础-学习记录day07

134 阅读4分钟

列表与字典

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}")

运行结果:

image.png