Python 中的字典get()方法和 setdefault()

liftword5个月前 (01-13)技术文章44

Python 字典是强大的数据结构,允许使用键值对有效地存储和检索数据。字典提供的最有用的方法之一是 get() 方法。此方法有助于正常处理缺失的 key,避免常见的 KeyError 异常。此外,setdefault() 方法可用于简化键默认值的管理。

使用get()方法

get() 方法用于从字典中检索与指定关联的值。如果键不存在,则返回默认值(如果未指定,则为 None)。这有助于避免 KeyError 异常,并使代码更加健壮。

value = dictionary.get(key, default_value)
  • key:在字典中搜索的 key。
  • default_value:找不到 key 时返回的值。如果未指定,则默认为 None

get()方法的示例

my_dict = {'a': 1, 'b': 2, 'c': 3}

# Access existing key
value = my_dict.get('b')
print(value)  # Output: 2

# Access non-existing key without default value
value = my_dict.get('d')
print(value)  # Output: None

# Access non-existing key with default value
value = my_dict.get('d', 4)
print(value)  # Output: 4

在此示例中,当在 my_dict 中找不到键 'd' 时,get() 方法默认返回 None,如果指定为默认值,则返回 4

优雅地处理丢失的密钥

使用 get() 方法有助于在处理可能缺少键的字典时避免异常。这在处理从外部源(如 JSON 响应或配置文件)解析的数据时特别有用。

config = {'host': 'localhost', 'port': 8080}

# Retrieve existing key
host = config.get('host')
print(host)  # Output: 'localhost'

# Retrieve non-existing key with default value
timeout = config.get('timeout', 30)
print(timeout)  # Output: 30

这得到了 30 的超时。

使用setdefault()方法

setdefault() 方法类似于 get(),但如果 key 不存在,它还会为键设置默认值。当您想要确保键在字典中具有默认值时,这可能很有用。

value = dictionary.setdefault(key, default_value)

setdefault()方法的示例

my_dict = {'a': 1, 'b': 2}

# Access existing key
value = my_dict.setdefault('b', 0)
print(value)  # Output: 2
print(my_dict)  # Output: {'a': 1, 'b': 2}

# Access non-existing key and set default value
value = my_dict.setdefault('c', 3)
print(value)  # Output: 3
print(my_dict)  # Output: {'a': 1, 'b': 2, 'c': 3}

在此示例中,setdefault() 方法检查 my_dict 中是否存在键 'c'。由于它没有,因此它会添加默认值为 3 的键。

简化数据初始化

setdefault() 方法在初始化嵌套字典或字典中的列表时特别有用。

data = {}

# Initialize nested dictionary if not present
data.setdefault('user', {}).setdefault('preferences', {}).setdefault('theme', 'light')

print(data)  # Output: {'user': {'preferences': {'theme': 'light'}}}

在此示例中,setdefault() 用于确保创建嵌套字典结构(如果尚不存在),并根据需要设置默认值。

字典的 get() 方法是优雅地处理缺失键的重要工具,提供了一种返回默认值而不是引发异常的方法。setdefault() 方法通过在缺少键时设置默认值来进一步简化字典管理。这些方法共同使您的代码更加健壮且更易于维护,尤其是在处理复杂的数据结构或来自外部源的数据时。

相关文章

python字典中如何添加键值对

添加键值对首先定义一个空字典 1>>> dic={}直接对字典中不存在的key进行赋值来添加123>>> dic['name']='zhangsan'>>...

Python字典-无序的键值对集合

Python字典-无序的键值对集合字典允许管理和存储键值对集合字典是可改变的。字典不会保持增加键值对时的顺序,这个顺序毫无意义。字典长啥样?person = {'name':'...

深入了解python字典的有序特性

字典字典有序还是无序初次接触python的时候,那时候用的python版本是2.7, 字典是无序的,就是说你update一个字典,新加的键值对不一定出现在字典的末尾,而是有可能出现在其他地方,popi...

教师资格证计算机专业课——考点(Python编程)

一、Python的基本数据类型Python3 中有六个标准的数据类型: Number(数字)、String(字符)、List(列表)、Tuple(元组)、Set(集合)以及 Dictionary (字...

Python - 爬虫之Selenium

一、Selenium 的介绍Selenium 是一个 Web 自动化测试工具,最初是为网站自动化测试而开发,Selenium 可以直接调用浏览器,它支持所有主流的浏览器(包括 PhantomJS 这些...

Python基础入门之字典Dict用方法详解

字典(dict)是一种非常有用的复合数据结构,是一种无序、可变的序列,字典元素由键值对组成,这些键值对之间用逗号分隔。在键值对中,键和值由冒号 “:”分隔。Python 字典主要特征:通过键而不是通过...