CodeGym /课程 /Python SELF ZH /操作字典

操作字典

Python SELF ZH
第 11 级 , 课程 2
可用

2.1 获取元素数量

在Python中,获取字典中元素数量可以使用内建的函数 len()。这个函数返回字典中的键值对数量。或者说,键的数量。

使用函数的示例:


person = {"name": "Alice", "age": 25, "city": "New York"}
num_elements = len(person)
print(num_elements)  # 输出: 3 

在这个例子中,我们有一个包含三个元素的字典personlen(person)返回字典中元素的数量,为3。

检查字典是否为空

你可以使用len()函数来检查字典是否为空。这个在条件判断和循环中很有用。


empty_dict = {}
print(len(empty_dict))  # 输出: 0

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

if len(person) > 0:
    print("字典不为空")
else:
    print("字典为空")

包含嵌套结构的字典

函数len()只考虑顶层键的数量,不管值中包含什么。


complex_dict = {
    name: "Alice",
    details: {
        age: 25,
        city: "New York"
    },
    hobbies: ["reading", "traveling"]
}
print(len(complex_dict))  # 输出: 3

在这个例子中,我们有一个包含嵌套数据结构的字典。len(complex_dict)返回3,因为顶层有三个键:"name"、"details"和"hobbies"。

len()忽略了嵌套数据结构中的键,比如"age"和"city"在字典"details"中,因为len()只计算顶层键的数量。如果你需要计算所有的元素,包括嵌套结构,需要用递归方法。但今天不讨论这个。

2.2 确定类型

函数 type()在Python中用于确定对象的类型。在操作字典时,type()允许你确定对象是dict类的实例。这在各种情境中都很有用,比如在对字典进行操作之前检查数据类型。

使用示例:

检查对象类型


person = {"name": "Alice", "age": 25, "city": "New York"}
print(type(person))  # 输出: <class 'dict'>

在这个例子中,我们创建了一个字典person并使用type来确定其类型。函数返回<class 'dict'>,表明person是一个字典。

数据类型的条件检查

type()函数可以在条件语句中用于检查数据类型,从而只对dict类型的对象进行特定的操作。


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

if type(data) is dict:
    print("这是一个字典。")
else:
    print("这不是一个字典。")

在这个例子中,条件语句检查data是否为字典,并执行相应的代码。

type()函数可以在自定义函数中用于检查参数的类型,从而确保函数处理的是正确的数据类型。

示例:


def process_data(data):
    if type(data) is dict:
        print("处理字典...")
        # 对字典进行操作
    else:
        print("错误:预期为字典。")

data = {"name": "Alice", "age": 25, "city": "New York"}
process_data(data)

在这个例子中,函数process_data检查参数data是否为字典,并仅对字典执行相应的操作。

2.3 获取元素

操作字典中的元素与操作列表或元组相似——我们也会使用方括号。不过在方括号中要指定键,而不是元素的索引。字典的键可以是任何不可变的元素:字符串、数字或元组等。


dictionary[key]

示例:


person = {"name": "Alice", "age": 25, "city": "New York"}
name = person["name"]
print(name)  # 输出: Alice

如果键不存在,会出现错误:


person = {"name": "Alice", "age": 25, "city": "New York"}
person["country"]  # 会出现错误 KeyError: 'country'

方法 get(key, def_value)

方法get()允许安全地通过键获取值。如果键不存在,方法返回默认值(没有指定默认值则返回None)。这防止了KeyError异常的出现。


person = {"name": "Alice", "age": 25, "city": "New York"}
age = person.get("age")
print(age)  # 输出: 25

country = person.get("country", "USA")
print(country)  # 输出: USA

get()方法中,可以传递第二个参数作为默认值,当字典中没有所需键时返回。

方法 setdefault()的工作方式类似于get(),但如果字典中没有键,方法不仅返回默认值,还会在字典中添加新的键: 值对。


person = {"name": "Alice", "age": 25}
city = person.setdefault("city", "New York")
print(city)  # 输出: New York
print(person)  # 输出: {'name': 'Alice', 'age': 25, 'city': 'New York'}
评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION