网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
# 删除一个键值对
del dict1['address']
print(dict1) # 输出 {'name': 'Tom', 'age': 19, 'gender': 'male', 'email': 'tom@example.com', 'phone': '123456789'}
# 清空字典
dict1.clear()
print(dict1) # 输出 {}
1.3.3 访问元素
可以通过键访问字典中的值:
dict1 = {'name': 'Tom', 'age': 18, 'gender': 'male'}
print(dict1['name']) # 输出 Tom
需要注意的是,如果使用不存在的键来访问字典中的值,将会引发KeyError异常。可以使用get()方法来避免这种情况的发生,如果键不存在,则返回None或指定的默认值:
print(dict1.get('address')) # 输出 None
print(dict1.get('address', 'unknown')) # 输出 unknown
1.3.4 遍历字典
可以使用for循环继续遍历字典:
dict1 = {'name': 'Tom', 'age': 18, 'gender': 'male'}
# 遍历键
for key in dict1:
print(key)
# 遍历值
for value in dict1.values():
print(value)
# 遍历键值对
for key, value in dict1.items():
print(key, value)
1.4 字典的基本方法
1.4.1 keys()
keys()方法返回字典中所有键的列表:
dict1 = {'name': 'Tom', 'age': 18, 'gender': 'male'}
print(dict1.keys()) # 输出 dict\_keys(['name', 'age', 'gender'])
需要注意的是,keys()方法返回的是dict_keys类型的对象,而非列表类型,但是可以像列表一样使用。
1.4.2 values()
values()方法返回字典中所有值的列表:
dict1 = {'name': 'Tom', 'age': 18, 'gender': 'male'}
print(dict1.values()) # 输出 dict\_values(['Tom', 18, 'male'])
同样,values()方法返回的是dict_values类型的对象,而非列表类型,但是可以像列表一样使用。
1.4.3 items()
items()方法返回字典中所有键值对的列表,每个键值对以元组的形式呈现:
dict1 = {'name': 'Tom', 'age': 18, 'gender': 'male'}
print(dict1.items()) # 输出 dict\_items([('name', 'Tom'), ('age', 18), ('gender', 'male')])
同样,items()方法返回的是dict_items类型的对象,而非列表类型,但是可以像列表一样使用。
1.4.4 pop()
pop()方法可以从字典中删除指定的键值对,并返回对应的值,如果键不存在,则返回指定的默认值:
dict1 = {'name': 'Tom', 'age': 18, 'gender': 'male'}
value = dict1.pop('age')
print(value) # 输出 18
print(dict1) # 输出 {'name': 'Tom', 'gender': 'male'}
1.4.5 popitem()
popitem()方法可以随机删除字典中的一个键值对,并返回对应的键和值:
dict1 = {'name': 'Tom', 'age': 18, 'gender': 'male'}
key, value = dict1.popitem()
print(key, value) # 输出 gender male
print(dict1) # 输出 {'name': 'Tom', 'age': 18}
1.4.6 update()
update()方法可以将一个字典中的元素添加到另一个字典中,如果有相同的键,则用新字典中的值覆盖原字典中的值:
dict1 = {'name': 'Tom', 'age': 18, 'gender': 'male'}
dict2 = {'name': 'Jerry', 'email': 'jerry@example.com'}
dict1.update(dict2)
print(dict1) # 输出{'name': 'Jerry', 'age': 18, 'gender': 'male', 'email': 'jerry@example.com'}
1.5 实操案例代码
1.5.1 案例一:统计字符串中每个字符出现的次数
def count\_char(str1):
char_dict = {}
for char in str1:
if char in char_dict:
char_dict[char] += 1
else:
char_dict[char] = 1
return char_dict
str1 = 'hello, world!'
print(count_char(str1))
# 输出 {'h': 1, 'e': 1, 'l': 3, 'o': 2, ',': 1, ' ': 1, 'w': 1, 'r': 1, 'd': 1, '!': 1}
1.5.2 案例二:合并多个字典
dict1 = {'name': 'Tom', 'age': 18}
dict2 = {'gender': 'Male'}
dict3 = {'email': 'tom@example.com'}
dict4 = {}
for d in (dict1, dict2, dict3):
dict4.update(d)
print(dict4)
# 输出 {'name': 'Tom', 'age': 18, 'gender': 'Male', 'email': 'tom@example.com'}
1.5.3 案例三:根据字典中的值对字典排序
def sort\_dict(dict1):
dict2 = {k: v for k, v in sorted(dict1.items(), key=lambda item: item[1])}
return dict2
dict1 = {'Tom': 75, 'Jerry': 90, 'Alice': 80, 'Bob': 85}
print(sort_dict(dict1))
# 输出 {'Tom': 75, 'Alice': 80, 'Bob': 85, 'Jerry': 90}
1.5.4 将列表转换为字典
keys = ['name', 'age', 'gender']
values = ['Tom', 18, 'Male']
dict1 = dict(zip(keys, values))
print(dict1)
# 输出 {'name': 'Tom', 'age': 18, 'gender': 'Male'}
1.5.5 使用字典实现一个简单的缓存
def fibonacci(n):
if n in cache:
return cache[n]
if n < 2:
result = n
else:
result = fibonacci(n - 1) + fibonacci(n - 2)
cache[n] = result
return result
1.6 字典的排序方法,升序以及降序
对于字典的排序,可以使用内置的 sorted() 函数或 sorted() 方法来实现,也可以使用 collections.OrderedDict 类来保持排序顺序。
下面分别介绍这些方法的升序和降序排序。
1.6.1 使用内置函数 sorted() 进行排序
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
1715371972015)]
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!