c语言编程笔录

首页 >   > 笔记大全

笔记大全

Python D ct onary 数据存储的高效利器

更新时间:2023-12-23

Python的字典是什么?

字典是Python中的一个复合数据类型,它用于存储键值对。一个字典是由一组键和它们对应的值组成的。

字典中的每个键必须是唯一的。字典可变且无序,这意味着我们可以添加/移除键值对,但是不能通过索引值访问字典的元素。

"""
  创建一个简单的字典,并访问其中的元素
"""
# 创建字典
my_dict = {"apple": 10, "banana": 20, "orange": 30}

# 访问字典元素
print(my_dict["apple"])
print(my_dict.get("banana"))

字典的常用方法

Python的字典是内置对象,提供了许多有用的方法。下面是一些常用的方法及其说明:

  • clear():移除字典中的所有元素。
  • copy():返回字典的浅层副本。
  • get(key, default=None):返回指定键的值,如果键不在字典中则返回默认值。
  • pop(key[,default]):删除字典给定键 key 所对应的值,返回值为被删除的值。key 值必须给出。如果 key 不存在,则返回 default 值。
  • update([other]):将other字典的键值对更新到当前字典中。
"""
  字典常用方法示例
"""

# 创建字典
my_dict = {"apple": 10, "banana": 20, "orange": 30}

# clear()
my_dict.clear()
print(my_dict)

# copy()
my_dict = {"apple": 10, "banana": 20, "orange": 30}
copy_dict = my_dict.copy()
print(copy_dict)

# get()
print(my_dict.get("apple"))
print(my_dict.get("banana", "No banana in my_dict"))

# pop(),popitem()
my_dict.pop("apple")
print(my_dict)

# update()
update_dict = {"apple": 50, "pear": 70}
my_dict.update(update_dict)
print(my_dict)

Python字典的性能优势

Python的字典实现使用哈希表,因此字典的访问时间与字典中元素的数量没有关系。在最差情况下平均访问时间是 O(1),事实上,如果没有哈希冲突,它可以接近于常数时间。在大多数情况下,Python可通过预先调整哈希表的大小来避免哈希冲突,从而保持高性能。

"""
  比较列表和字典的性能
"""

import time


# 计时函数
def time_it(func):
    def wrapper(*args, **kwargs):
        start = time.time()
        result = func(*args, **kwargs)
        end = time.time()
        print(f"{func.__name__} took {(end - start) * 1000:.6f} ms")
        return result

    return wrapper


@time_it
def test_dict():
    d = {}
    for i in range(1000000):
        d[i] = i

    for i in range(1000000):
        j = d[i]


@time_it
def test_list():
    l = []
    for i in range(1000000):
        l.append(i)

    for i in range(1000000):
        j = l[i]


if __name__ == "__main__":
    test_dict()
    test_list()

Python字典的应用场景

Python字典是一种非常强大的数据结构,非常适合以下情况:

  • 数据存储和访问速度是优先考量的。
  • 需要将键值对按照某种方式组织(比如按照键排序)。
  • 需要存储和访问大量关联数据(比如文本或图像处理中的像素映射)。

总之,Python的字典可以提供快速的键值查找和存储,并且非常适合存储大量的数据。