您的位置:

Python字典获取值的一些技巧

一、使用get()方法获取字典中的值

Python字典中的get()方法可以用来获取字典中指定键的值,可选参数可以指定如果键不存在时,返回的默认值。

# 代码示例
person = {"name": "Alice", "age": 30, "city": "Beijing"}
name = person.get("name")
print(name)  # 输出 "Alice"
gender = person.get("gender", "unknown")
print(gender)  # 输出 "unknown"

上述代码中,通过get()方法获取了person字典中"name"键对应的值"Alice",并使用get()方法的第二个可选参数设置了当"gender"键不存在时,返回了默认值"unknown"。

二、使用字典的keys()方法获取所有键,使用values()方法获取所有值

Python字典的keys()方法可以用来获取字典中所有键,而values()方法则可以用来获取所有值。

# 代码示例
person = {"name": "Alice", "age": 30, "city": "Beijing"}
keys = person.keys()
values = person.values()
print(keys)  # 输出 ["name", "age", "city"]
print(values)  # 输出 ["Alice", 30, "Beijing"]

上述代码中,使用keys()方法获取了person字典中的所有键,并使用values()方法获取了所有值。

三、使用items()方法同时获取所有键值对

Python字典的items()方法可以用来同时获取字典中所有键值对,以元组(tuple)形式返回。

# 代码示例
person = {"name": "Alice", "age": 30, "city": "Beijing"}
items = person.items()
print(items)  # 输出 [("name", "Alice"), ("age", 30), ("city", "Beijing")]

上述代码中,使用items()方法获取了person字典中的所有键值对,并以元组形式存储在items变量中。

四、使用字典推导式获取符合条件的键值对

Python的字典推导式可以用来快速过滤符合指定条件的键值对

# 代码示例
person = {"name": "Alice", "age": 30, "city": "Beijing", "gender": "female"}

# 使用字典推导式获取所有值为字符串类型的键值对
string_items = {k: v for k, v in person.items() if isinstance(v, str)}
print(string_items)  # 输出 {"name": "Alice", "city": "Beijing", "gender": "female"}

# 使用字典推导式获取所有键为偶数的键值对
even_items = {k: v for k, v in person.items() if isinstance(k, int) and k % 2 == 0}
print(even_items) # 输出 {}

上述代码中,第一个字典推导式获取了person字典中所有值为字符串类型的键值对。第二个字典推导式获取了person字典中所有键为偶数的键值对(但person字典中并没有整型的键,所以返回了空字典)。

五、使用in关键字检查字典中是否存在指定键

Python中可以使用in关键字来判断一个键是否存在于字典中。

# 代码示例
person = {"name": "Alice", "age": 30, "city": "Beijing"}
if "name" in person:
    print("name键存在于person字典中")
if "gender" not in person:
    print("gender键不存在于person字典中")

上述代码中,使用in关键字检查了person字典中是否存在"name"和"gender"键,并分别输出相应的提示信息。

六、使用setdefault()方法获取指定键的值,或将指定键添加到字典中并指定默认值

Python字典的setdefault()方法可以用来获取指定键对应的值,如果键不存在则会将指定键添加到字典中,并将默认值作为该键的值。

# 代码示例
person = {"name": "Alice", "age": 30, "city": "Beijing"}
name = person.setdefault("name", "unknown")
print(name)  # 输出 "Alice"
gender = person.setdefault("gender", "unknown")
print(gender)  # 输出 "unknown"
print(person)  # 输出 {"name": "Alice", "age": 30, "city": "Beijing", "gender": "unknown"}

上述代码中,使用setdefault()方法获取了person字典中"name"键对应的值"Alice",并使用setdefault()方法添加了"gender"键,并将默认值"unknown"指定为该键的值。

七、使用字典对象的getvalue()方法获取所有的值(注:Python的字典没有获取所有值得方法。)

Python字典中并没有直接获取所有值的方法,因此可以使用values()方法获取所有值,或使用循环遍历字典中的所有键并通过get()方法获取对应的值。

# 代码示例1:使用values()方法获取所有值
person = {"name": "Alice", "age": 30, "city": "Beijing"}
values = person.values()
print(values)  # 输出 ["Alice", 30, "Beijing"]

# 代码示例2:遍历字典获取所有值
person = {"name": "Alice", "age": 30, "city": "Beijing"}
values = []
for key in person:
    values.append(person.get(key))
print(values)  # 输出 ["Alice", 30, "Beijing"]

上述代码中,第一段代码使用values()方法获取了person字典中的所有值,第二段代码使用循环遍历person字典中的所有键,并通过get()方法获取对应的值并添加到列表中。