python中的字典

一、字典定义:

字典用于存储键值对(key-value pairs),其中每个键(key)都是唯一的,并且与一个值(value)相关联

二、主要特点:

  1. 键值对(Key-Value Pairs): 字典的核心是键值对。你可以通过键来快速查找对应的值。

  2. 无序性(Python 3.6+ 前的版本): 在 Python 3.6 之前,字典中的元素是没有固定顺序的。从 Python 3.7 开始,字典保持插入顺序,但将其视为语言特性是在 Python 3.8 才正式确立。不过,在大多数情况下,你可以依赖字典保持插入顺序。
  3. 可变性: 字典是可变的,这意味着你可以在创建后添加、删除或修改键值对。
  4. 键的唯一性: 字典中的每个键必须是唯一的。如果尝试添加一个已经存在的键,新的值会覆盖旧的值。
  5. 键的类型: 键必须是不可变类型,例如整数、浮点数、字符串或元组(元组中的元素也必须是不可变的)。列表、字典或其他可变类型不能作为键。
  6. 值的类型: 值可以是任何数据类型,包括数字、字符串、列表、元组、其他字典,甚至是函数或对象。

三、创建字典

1、使用花括号 {}:

    my_dict = {"name": "Alice", "age": 25, "city": "New York"}
    print(my_dict)  # 输出: {'name': 'Alice', 'age': 25, 'city': 'New York'}
    

2、使用 dict() 构造函数: (使用键值对列表:)

创建空字典

    empty_dict = {}
    # 或者
    empty_dict = dict()
    

四、访问字典中的值

使用键来访问对应的值:

my_dict = {"name": "Alice", "age": 25, "city": "New York"}

# 直接通过键访问
print(my_dict["name"])  # 输出: Alice

# 如果键不存在,会抛出 KeyError 异常
# print(my_dict["country"])  # 这会引发 KeyError: 'country'

# 使用 get() 方法更安全,如果键不存在,返回 None 或指定的默认值
print(my_dict.get("name"))          # 输出: Alice
print(my_dict.get("country"))       # 输出: None
print(my_dict.get("country", "Unknown"))  # 输出: Unknown

五、修改字典

1、添加或更新键值对:

    my_dict = {"name": "Alice", "age": 25}

    # 添加新键值对
    my_dict["city"] = "New York"
    print(my_dict)  # 输出: {'name': 'Alice', 'age': 25, 'city': 'New York'}

    # 更新已存在的键的值
    my_dict["age"] = 26
    print(my_dict)  # 输出: {'name': 'Alice', 'age': 26, 'city': 'New York'}
    

2、删除键值对:使用 del 语句:

        del my_dict["age"]
        print(my_dict)  # 输出: {'name': 'Alice', 'city': 'New York'}
        # 如果键不存在,会抛出 KeyError
        

使用 `pop(key[, default])` 方法:删除指定键并返回对应的值。如果键不存在,可以指定一个默认值返回,否则抛出 KeyError。

        age = my_dict.pop("age", None)  # 尝试删除 'age',如果不存在则返回 None
        print(age)  # 输出: None (因为 'age' 已经被删除)
        print(my_dict)  # 输出: {'name': 'Alice', 'city': 'New York'}

        city = my_dict.pop("city")
        print(city)  # 输出: New York
        print(my_dict)  # 输出: {'name': 'Alice'}
        

六、清空字典clear():

    my_dict = {"name": "Alice", "age": 25}
    my_dict.clear()
    print(my_dict)  # 输出: {}
    

七、字典的方法

字典有很多内置方法,非常有用:

1、get 方法:

返回字典中指定键的值。如果键不存在,则返回默认值(如果提供了的话),否则返回 None

   d = {'a': 1, 'b': 2}
   value = d.get('a')  # 返回 1
   value = d.get('c', 3)  # 返回 3,因为 'c' 不存在
   

2、pop 方法:

删除并返回字典中指定键的值。如果键不存在,则返回默认值(如果提供了的话),否则抛出 KeyError
   d = {'a': 1, 'b': 2}
   value = d.pop('a')  # 返回 1,并从字典中移除 'a'
   value = d.pop('c', 3)  # 返回 3,因为 'c' 不存在,不会抛出异常
   

3、copy 方法:

返回一个新的字典,它是原字典的浅拷贝

   d = {'a': 1, 'b': 2}
   d_copy = d.copy()  # d_copy 是 {'a': 1, 'b': 2} 的浅拷贝
   

    4、key方法:

    返回一个视图对象,显示字典的所有键

       d = {'a': 1, 'b': 2}
       keys = d.keys()  # keys 是一个包含 'a' 和 'b' 的视图对象
       

    5、clear 方法:

    移除字典中的所有项,使其变为空字典

       d = {'a': 1, 'b': 2}
       d.clear()  # d 现在是空字典 {}
       

    6、fromkeys 方法:

    创建一个新字典,其键来自可迭代对象 iterable,值为可选参数 value 的值(如果没有提供,则为 None)

       keys = ('a', 'b', 'c')
       d = dict.fromkeys(keys, 1)  # d 是 {'a': 1, 'b': 1, 'c': 1}
       

    7、items 方法:

    返回一个视图对象,显示字典的所有键值对

       d = {'a': 1, 'b': 2}
       items = d.items()  # items 是一个包含 ('a', 1) 和 ('b', 2) 的视图对象
       

    8、popitem 方法

    随机地从字典中移除并返回一个键值对。如果字典为空,则抛出 KeyError

       d = {'a': 1, 'b': 2}
       item = d.popitem()  # 随机返回一个键值对,例如 ('b', 2),并从字典中移除它
       

    9、setdefault 方法

    如果键存在于字典中,则返回其值;如果键不存在,则在字典中设置该键的值为默认值(如果提供了的话),然后返回这个默认值

       d = {'a': 1, 'b': 2}
       item = d.popitem()  # 随机返回一个键值对,例如 ('b', 2),并从字典中移除它
       

    10、update 方法:

    更新字典,将另一个字典(或其他可迭代对象的键值对)的键值对添加到当前字典中。如果键已存在,则更新其值

        d = {'a': 1, 'b': 2}
        d.update({'b': 3, 'c': 4})  # d 现在是 {'a': 1, 'b': 3, 'c': 4}
        

    八、遍历字典

    可以遍历字典的键、值或键值对:

    my_dict = {"name": "Alice", "age": 25, "city": "New York"}
    
    # 遍历键
    for key in my_dict:
        print(key)
    # 输出:
    # name
    # age
    # city
    
    # 或者明确使用 keys()
    for key in my_dict.keys():
        print(key)
    # 输出同上
    
    # 遍历值
    for value in my_dict.values():
        print(value)
    # 输出:
    # Alice
    # 25
    # New York
    
    # 遍历键值对 (推荐方式)
    for key, value in my_dict.items():
        print(f"Key: {key}, Value: {value}")
    # 输出:
    # Key: name, Value: Alice
    # Key: age, Value: 25
    # Key: city, Value: New York
    

    九、总结

    常见用途

    1、存储配置信息。

    2、表示对象或实体的属性(如用户信息、产品信息)。

    3、作为数据库查询结果的临时存储。

    4、统计词频、字符出现次数等。

    5、任何需要通过唯一标识符(键)快速查找相关信息(值)的场景。

    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

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

    抵扣说明:

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

    余额充值