本人是个前端的无名小卒,为了自己的更好的机遇,努力自学python,望有志同道合的大佬可以交流一下
这文章学习到python中的字典 ,学到这里就像JavaScript里面的数据类型对象,好的开始愉快的学习吧
字典
1.1 字典的定义和访问
# 字典就是相当与js中的对象
# 字典dict 定义使用{} 定义, 是由键值对组成(key- value)
# 变量= {key: value1, key2:value2, ...} 一个key:value键值对是一个元素
# 字典的key, 可以是字符串类型和数字类型(int float), 不能是 列表
# value 值可以是任何类型
# 1.定义空字典
my_dict = {}
my_dict1 = dict()
print(my_dict, type(my_dict)) # {} <class 'dict'>
print(my_dict1, type(my_dict1)) # {} <class 'dict'>
# 2.定义带数据的字典
my_dict2 = {'name': 'isaac', 'age': 18, 'like': ['学习', '购物', '游戏'], 1: [2, 5, 8]}
print(my_dict2) # {'name': 'isaac', 'age': 18, 'like': ['学习', '购物', '游戏'], 1: [2, 5, 8]}
# 3.访问value值 ,在字典没有下标的概念, 使用key值访问对应的value的值
print(my_dict2['age']) # 18
print(my_dict2['like'][1]) # 购物
# 如果key值不存在
# print(my_dict2['gender']) # 代码报错,key值不存在的
# 字典.get(key) 如果key值不存在,不会报错,返回的none
print(my_dict2.get('gender')) # none
# my_dict2,get(key, 数据值) 如果key存在 ,返回key对应的value值,如果key不存在,返回书写的数据值
print(my_dict2.get('gender', '男')) # 男
print(my_dict2.get('age', 1)) # 18
print(len(my_dict2)) # 4.
1.2 字典中添加和修改数据
my_dict = {'name': 'isaac'}
print(my_dict) # {'name': 'isaac'}
# 字典中添加和修改数据, 使用key值进行添加和修改
# 字典[key] = 数据值; 如果key值存在就是修改,如果key值不存在,就是添加
my_dict['age'] = 18 # key值已经存在,就是修改数据
print(my_dict) # {'name': 'isaac', 'age': 18}
my_dict['age'] = 19
print(my_dict) # key值已经存在,就是修改数据
# 注意点 key值 int 的 1 和float 的 1.0 代表一个key值
my_dict[1] = 'int'
print(my_dict) # {'name': 'isaac', 'age': 19, 1: 'int'}
my_dict[1.0] = 'float'
print(my_dict) # {'name': 'isaac', 'age': 19, 1: 'float'}
1.3 字典中删除数据
my_dict = {'name': 'isaac', 'age': 19, 1: 'float', 2: 'aa'}
# 根据key值删除数据 del 字典名[key]
del my_dict[1]
print(my_dict) # {'name': 'isaac', 'age': 19, 2: 'aa'}
# 字典.pop(key) 根据key 值删除, 返回值是删除的key 对应的value 值
result = my_dict.pop('age')
print(my_dict) # {'name': 'isaac', 2: 'aa'}
print(result) # 9
# 字典.clear() 清空字典,删除所有的键值对
my_dict.clear()
print(my_dict) # {}
# del 字典名 直接将这个字典删除了,不能使用这个字典了
del my_dict # 后边的代码不能再直接使用这个变量了 ,除非再次定义
# print(my_dict) 代码报错 , 变量为定义
1.4 字典中遍历数据
my_dict = {'name': 'isaac', 'age': 18, 'gender': '男'}
# for 循环体直接遍历字典, 遍历的字典的key值
for key in my_dict:
print(key, my_dict[key])
# 字典.keys() 获取字典中所有的key值,得到类型是 dict_keys, 该类型具有的特点是
# 1. 可以使用list() 进行类型转换 ,即将其转换为列表类型
# 2. 可以使用 for 循环进行 遍历
result = my_dict.keys()
print(result, type(result)) # dict_keys(['name', 'age', 'gender']) <class 'dict_keys'>
for key in result:
print(key) # name age gender
# 字典.values() 获取所有的value 值, 类型是dict_values
# 1.可以使用list() 进行类型转换,即将其转换为列表类型
# 2.可以使用for 循环 进行遍历
result = my_dict.values()
print(result, type(result)) # dict_values(['isaac', 18, '男']) <class 'dict_values'>
for value in my_dict.values():
print(value) # isaac 18 男
# 字典.items() 获取所有的键值对, 类型是dict_item, key, value 组成元组类型
# 1.可以使用list() 进行类型转换,即将其转换为列表类型
# 2.可以使用for 循环进行遍历
result = my_dict.items()
print(result, type(result))
for item in my_dict.items():
print(item[0], item[1])
print('=' * 30)
for k, v in my_dict.items():
print(k, v)
1.5 enumerate 函数
my_list = ['a', 'b', 'c', 'd', 'e']
# for i in my_list:
# print(i) # a b c d e
for i in my_list:
print(my_list.index(i), i) # 下标, 数据值
# enemerate 将可迭代序列中元素所在的下标和具体元素数据组合在一块,变成元组
for j in enumerate(my_list):
print(j)
总结答疑
# 在字典中可以包含列表,列表中能包含字典吗?
# 可以的,列表 元组 可以存放 任意类型的数据 , 同样 ,字典 中的 value 也=可以是任意的类型,字典也可以作为兹字典的value值
my_dict = {'name': 'isaac', 'age': 18, 'like': [1, 2], 'aa': {'a': 1, 'b': 200}}
print(my_dict) # {'name': 'isaac', 'age': 18, 'like': [1, 2], 'aa': {'a': 1, 'b': 200}}
print(my_dict['aa']['b']) # 200
my_list = [{}, {}, {}, my_dict]
print(my_list) # [{}, {}, {}, {'name': 'isaac', 'age': 18, 'like': [1, 2], 'aa': {'a': 1, 'b': 200}}]
每天增加一点知识,犹如万里长城一砖一瓦盖起来的,谢谢各位大佬观赏,提提意见