自学python 进击之路 - 字典

201 阅读4分钟

本人是个前端的无名小卒,为了自己的更好的机遇,努力自学python,望有志同道合的大佬可以交流一下

src=http___5b0988e595225.cdn.sohucs.com_images_20190916_32ce26032b124c3cb145a4231627373d.jpeg&refer=http___5b0988e595225.cdn.sohucs.jpg

这文章学习到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}}]

每天增加一点知识,犹如万里长城一砖一瓦盖起来的,谢谢各位大佬观赏,提提意见