字典


字典的创建
  • 使用大括号 {} 创建一个空字典:
    my_dict = {}

  • 使用键值对初始化字典:
    my_dict = {'name': 'John', 'age': 30, 'city': 'New York'}

  • 使用 dict() 构造函数创建字典:
    my_dict = dict(name='Alice', age=25, city='Los Angeles')

  • 从列表或元组中创建字典:

    key_value_pairs = [('name', 'Bob'), ('age', 35), ('city', 'Chicago')]
    my_dict = dict(key_value_pairs)
  • 使用字典推导式创建字典:

    my_dict = {key: value for key, value in [('name', 'Eve'), ('age', 28), ('city', 'Houston')]}
增添元素
  • 直接指定一个新的键值对:

    my_dict = {'name': 'John', 'age': 30, 'city': 'New York'}
    my_dict['email'] = 'john@example.com'
  • 使用 update() 方法添加多个键值对:

    my_dict = {'name': 'John', 'age': 30, 'city': 'New York'}
    my_dict.update({'email': 'john@example.com', 'phone': '555-555-5555'})
  • 使用字典推导式创建一个新的字典并添加元素:

    my_dict = {'name': 'John', 'age': 30, 'city': 'New York'}
    new_data = {'email': 'john@example.com', 'phone': '555-555-5555'}
    my_dict = {**my_dict, **new_data}
  • 使用 setdefault() 方法,如果键不存在则设置默认值:

    my_dict = {'name': 'John', 'age': 30}
    my_dict.setdefault('email', 'john@example.com')
  • 使用 defaultdict 来添加元素,如果键不存在会自动创建默认值:

    from collections import defaultdict
    
    my_dict = defaultdict(int)  # 默认值为整数
    my_dict['count'] += 1  # 自动创建并增加计数
删除元素
  • 使用 del 语句删除指定键的键值对:

    my_dict = {'name': 'John', 'age': 30, 'city': 'New York'}
    del my_dict['age']  # 删除键为'age'的键值对
  • 使用 pop() 方法删除指定键的键值对,并返回其值:

    my_dict = {'name': 'John', 'age': 30, 'city': 'New York'}
    age = my_dict.pop('age')  # 删除并返回'age'的值
  • 使用 popitem() 方法删除最后一个键值对,并返回一个元组:

    my_dict = {'name': 'John', 'age': 30, 'city': 'New York'}
    key, value = my_dict.popitem()  # 删除并返回最后一个键值对
  • 使用 clear() 方法清空整个字典:

    my_dict = {'name': 'John', 'age': 30, 'city': 'New York'}
    my_dict.clear()  # 清空字典,变成一个空字典
  • 使用 dict.pop() 方法删除键,并提供默认值以防键不存在:

    my_dict = {'name': 'John', 'city': 'New York'}
    age = my_dict.pop('age', 0)  # 删除'age',如果不存在则返回默认值0
修改元素
  • 直接赋值: 您可以通过将新值分配给字典中的键来直接修改元素

    my_dict = {'name': 'John', 'age': 30, 'city': 'New York'}
    
    # 直接赋值来修改 'age' 键的值
    my_dict['age'] = 31
  • update() 方法: 使用 update() 方法可以更新一个或多个键值对。

    my_dict = {'name': 'John', 'age': 30, 'city': 'New York'}
    
    # 使用 update() 方法同时更新 'age' 和 'city'
    my_dict.update({'age': 32, 'city': 'Los Angeles'})
  • 字典推导式: 您可以使用字典推导式来创建一个新字典,根据原始字典的键值对进行修改。

    my_dict = {'name': 'John', 'age': 30, 'city': 'New York'}  
      
    # 使用字典推导式修改字典中的值  
    my_dict = {key: 'Amy' if key == 'name' else value for key, value in my_dict.items()}  
    my_dict = {key: 31 if key == 'age' else value for key, value in my_dict.items()}  
    my_dict = {key: 'Los Angeles' if key == 'city' else value for key, value in my_dict.items()}
查询操作
  • 使用键来获取值: 使用字典的键来检索相关的值。

    my_dict = {'name': 'John', 'age': 30, 'city': 'New York'}  
      
    name = my_dict['name']  
    age = my_dict['age']
  • 使用get()方法: 使用get()方法来获取键对应的值。这种方法可以在键不存在时提供一个默认值。

    my_dict = {'name': 'John', 'age': 30, 'city': 'New York'}  
      
    name = my_dict.get('name')  
    age = my_dict.get('age')
  • 使用in操作符检查键是否存在: 您可以使用in操作符来检查字典中是否包含某个键。

    my_dict = {'name': 'John', 'age': 30, 'city': 'New York'}  
      
    if 'age' in my_dict:  
        age = my_dict['age']  
    else:  
        age = None
  • 使用keys()方法来获取所有键: 使用keys()方法获取字典中所有键的列表,然后可以遍历列表进行查询。

    my_dict = {'name': 'John', 'age': 30, 'city': 'New York'}  
      
    for key in my_dict.keys():  
        if key == 'name':  
            name = my_dict[key]
  • 使用values()方法来获取所有值: 使用values()方法获取字典中所有值的列表,然后可以遍历列表进行查询。

    my_dict = {'name': 'John', 'age': 30, 'city': 'New York'}  
      
    for value in my_dict.values():  
        if value == 'John':  
            name = value
键与值相关的函数
  • keys() 方法: 返回一个包含字典所有键的视图(view),这个视图可以被用于迭代或转换为列表。

    my_dict = {'name': 'John', 'age': 30, 'city': 'New York'}
    keys = my_dict.keys()  # 返回一个视图对象
    key_list = list(my_dict.keys())  # 将视图转换为列表
  • values() 方法: 返回一个包含字典所有值的视图,同样可以用于迭代或转换为列表。

    my_dict = {'name': 'John', 'age': 30, 'city': 'New York'}
    values = my_dict.values()  # 返回一个视图对象
    value_list = list(my_dict.values())  # 将视图转换为列表
  • items() 方法: 返回一个包含字典所有键值对(元组形式)的视图。

    my_dict = {'name': 'John', 'age': 30, 'city': 'New York'}
    items = my_dict.items()  # 返回一个视图对象
    item_list = list(my_dict.items())  # 将视图转换为列表
  • get() 方法: 用于获取指定键的值,如果键不存在,可以提供一个默认值作为参数。

    my_dict = {'name': 'John', 'age': 30, 'city': 'New York'}
    name = my_dict.get('name')  # name = 'John'
    email = my_dict.get('email', 'N/A')  # 如果'email'不存在,返回'N/A'
  • pop() 方法: 用于删除指定键的键值对,并返回相应的值。\

    my_dict = {'name': 'John', 'age': 30, 'city': 'New York'}
    age = my_dict.pop('age')  # 删除'age'键值对,age = 30
返回迭代器
  • 返回一个迭代器遍历字典的键:

    my_dict = {'name': 'John', 'age': 30, 'city': 'New York'}
    key_iterator = iter(my_dict.keys())  # 将键视图转换为迭代器
    
    for key in key_iterator:
        print(key)
  • 返回一个迭代器遍历字典的值:

    my_dict = {'name': 'John', 'age': 30, 'city': 'New York'}
    value_iterator = iter(my_dict.values())  # 将值视图转换为迭代器
    
    for value in value_iterator:
        print(value)
  • 返回一个迭代器遍历字典的键值对:

    my_dict = {'name': 'John', 'age': 30, 'city': 'New York'}
    item_iterator = iter(my_dict.items())  # 将键值对视图转换为迭代器
    
    for key, value in item_iterator:
        print(key, value)
zip()函数
  • zip() 函数是Python内置函数之一,用于将多个可迭代对象(例如列表、元组等)组合成一个元组的序列,以便进行迭代或其他操作。zip() 函数的基本语法如下:
  • zip(iterable1, iterable2, ...)
  • iterable1, iterable2, …:要合并的可迭代对象,可以是多个,用逗号分隔。
    names = ['Alice', 'Bob', 'Charlie']
    scores = [95, 88, 75]
    
    # 使用 zip() 合并两个列表
    zipped_data = zip(names, scores)
    
    # 遍历合并后的迭代器
    for name, score in zipped_data:
        print(name, score)

文章作者: Chipfron
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Chipfron !
  目录