Python中的字典

在NoSQL数据库中,数据结构根据需求而变化。在列表(List)中,数据以特定顺序存储,每个元素的位置都很重要。例如,要访问列表中的第一个元素,可以通过索引0来检索其值,这种顺序性使得访问变得可预测。

然而,当数据的顺序不重要时,字典(Dictionary,或键值存储)更为合适。考虑一个需要存储用户信息的场景,如年龄、地址、名字和姓氏。在这种情况下,这些字段的顺序并不重要。使用字典,您可以通过键直接访问特定的值,例如通过查询“first_name”键来检索名字,而无需知道姓氏或其他字段。

关键区别:

  • 在列表中,值是以预定义的顺序索引(0, 1, 2, …)存储的,您通过位置访问数据。
  • 在字典中,您定义自定义键与值的映射,允许通过键直接访问数据,而不依赖于顺序。

因此,对于需要灵活、基于键访问数据而不依赖于顺序的场景,字典是首选。

Python中的咖啡菜单 — 字典操作

  1. 创建咖啡菜单(字典)
coffee_menu = {
    "Espresso": "Bold shot!",
    "Latte": "Creamy delight",

{
    "Espresso": "浓缩咖啡",
    "Latte": "奶泡咖啡",
    "Cappuccino": "泡沫经典",
    "Mocha": "巧克力咖啡",
    "ColdBrew": "顺滑冷萃",
    "Americano": "浓缩咖啡 + 水",
    "Macchiato": "浓缩咖啡之吻"
}
print(coffee_menu)
  1. 访问值(使用键)
print(coffee_menu['Espresso'])

输出:

浓缩咖啡一杯!
  1. 修改值
    coffee_menu['Espresso'] = '小雷霆'
    print(coffee_menu)
    

输出:

{
    'Espresso': '小雷霆',
    'Latte': '奶泡咖啡',
    'Cappuccino': '泡沫经典',
    'Mocha': '巧克力咖啡',
    'ColdBrew': '顺滑冷萃',
    'Americano': '浓缩咖啡 + 水',
    'Macchiato': '浓缩咖啡之吻'
}
  1. 遍历字典
  • 仅键
for coffee in coffee_menu:
    print(coffee)

输出:

Espresso
Latte
Cappuccino
Mocha
ColdBrew
Americano
Macchiato
  • 键和值(方法 1)
    for coffee in coffee_menu:
    print(coffee, ":", coffee_menu[coffee])
    
  • 键和值(方法 2)
    for key, value in coffee_menu.items():
    print(key, ":", value)
    
  1. 添加项目
    coffee_menu["Flat White"] = "丝滑顺滑"
    print(coffee_menu)
    
  2. 移除项目
  • 使用 pop(key)
    coffee_menu.pop('Espresso')
    print(coffee_menu)
    

输出:

{
    'Latte': '奶泡咖啡',
    'Cappuccino': '泡沫经典',
    'Mocha': '巧克力咖啡',
    'ColdBrew': '顺滑冷萃',

'Americano': '浓缩咖啡 + 水',
    'Macchiato': '浓缩咖啡之吻'
}
  • 使用 popitem()

移除最后插入的项目。

coffee_menu.popitem()
print(coffee_menu)

示例输出:

{
    'Espresso': '浓烈的咖啡!',
    'Latte': '奶油美味',
    'Cappuccino': '泡沫经典',
    'Mocha': '巧克力咖啡',
    'ColdBrew': '顺滑的冷萃',
    'Americano': '浓缩咖啡 + 水'
}

⚠️ 注意:如果字典为空,popitem() 将引发 KeyError。

  • 使用 del 语句
    del coffee_menu["Latte"]
    print(coffee_menu)
    

📝 注意:
每个操作都是单独进行演示的,因此字典内容在每个输出中可能看起来不同。在实际程序中,通常会根据需要将这些操作链式调用。

更多