【零基础入门学习Python---Python的五大数据类型之字典类型】_字典中的键必须是唯一的,必须是不可变数据类型如字符串、数字或列表。(1)

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事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() 进行排序

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

1715371972015)]

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 24
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值