原文: Adding to a Dict in Python – How to Add to a Dictionary

一个 Python 字典就像一个 JavaScript 对象——它是一个 key:value 对的序列。所以,你可以像这样创建它们:

stack_dict = {
    "frontend": "JavaScript",
    "backend": "Node JS",
    "markup": "HTML and JSX",
}

要访问字典中的值,可以这样做:dict[key]。例如,如果我想访问 frontend 键所持有的东西,我可以这样做:

print(stack_dict["frontend"])
# JavaScript

但是,如果你想在字典中添加另一个条目,而不需要回到字典中去把它放进去呢?这就是我们在这篇文章中要研究的问题。我将向你展示如何用三种不同的方法做到这一点。

我们将讨论的内容

  • 如何给 Python 字典添加项目
  • 如何通过映射键来给字典添加项目
  • 如何使用 update() 方法给字典添加项目
  • 如何使用 if 语句给字典添加项目
  • 总结

如何给 Python 字典添加项目

你可以用三种不同的方式给字典添加项目:

  • 映射一个字典的键
  • 使用 update() 方法
  • 使用 if 语句

如何在 Python 中通过映射键来给字典添加项目

如果你想用这个方法添加项目到一个字典中,你需要用赋值运算符添加值。

dict["key"] = "value"`

这也会覆盖一个现有键的值。

在我之前定义的堆栈字典中,没有样式:

stack_dict = {
    "frontend": "JavaScript",
    "backend": "Node JS",
    "markup": "HTML and JSX",
}

因此,让我们通过映射一个新的键,为字典添加 styling 键 和 CSS 值:

stack_dict["styling"] = "CSS"

print(stack_dict)
# Output: {'frontend': 'JavaScript', 'backend': 'Node JS', 'markup': 'HTML and JSX', 'styling': 'CSS'}

你可以看到,一个新的键 styling 和一个值 CSS 已经被添加到字典中。

如果键已经存在,值会被覆盖:

stack_dict["markup"] = "HTML only"
print(stack_dict)

# {'frontend': 'JavaScript', 'backend': 'Node JS', 'markup': 'HTML only'}

如何使用 update() 方法给 Python 字典添加项目

栈中还缺少一个 JavaScript 库,所以让我们用 update() 方法来添加它。你可以这样做:

dict.update({"key": "value"})`.

所以,为了添加 JavaScript 框架/库,我是这样做的:

stack_dict.update({"JS Framework": "React/Next"})

print(stack_dict)
# {'frontend': 'JavaScript', 'backend': 'Node JS', 'markup': 'HTML and JSX', 'styling': 'CSS', 'JS Framework': 'React/Next'}

update() 也会覆盖一个现有的值:

stack_dict.update({"backend": "Django"})

print(stack_dict)
# {'frontend': 'JavaScript', 'backend': 'Django', 'markup': 'HTML and JSX'}

如何使用 if 语句给 Python 字典添加项目

如果你不希望一个项目被覆盖,即使它已经存在,你可以使用一个 if 语句,语法是这样的:

if "value" not it dict.keys():
    dict["key"] = "value"

我想在堆栈字典中添加一个 “CSS Framework” 键,其值为 “Tailwind CSS”,所以我将借助这个语法来完成这个任务:

if "Tailwind CSS" not in stack_dict.keys():
    stack_dict["CSS Framework"] = "Tailwind CSS"

print(stack_dict)
# {'frontend': 'JavaScript', 'backend': 'Node JS', 'markup': 'HTML and JSX', 'styling': 'CSS', 'JS Framework': 'React/Next', 'CSS Framework': 'Tailwind CSS'}

如果该项目已经在字典中,它就不会被添加进去:

if "HTML and JSX" not in stack_dict.keys():
    stack_dict["markup"] = "HTML and JSX"

print(stack_dict)
# {'frontend': 'JavaScript', 'backend': 'Node JS', 'markup': 'HTML and JSX', 'styling': 'CSS', 'JS Framework': 'React/Next'}

如果你不喜欢用 if 语句来给字典添加项目,你可以用 try...except... 做同样的事情:

try:
  stack_dict["Deployment"] = "Anywhere possible"
except:
  print("An exception occurred")

print(stack_dict)
# {'frontend': 'JavaScript', 'backend': 'Node JS', 'markup': 'HTML and JSX', 'styling': 'CSS', 'JS Framework': 'React/Next', 'Deployment': 'Anywhere possible'}

总结

这篇文章带你了解了在 Python 中给字典添加项目的三种不同方法:

  • 映射字典的键
  • 使用 update() 方法
  • 使用 if 语句

我们甚至研究了如何使用 try...except... 表达式给字典添加项目。

谢谢你阅读本文。