获取字典的值value
在 Python 中,字典中的元素是无序的,所以无法用下标来获取值。而字典中的键是唯一且不可变的,所以字典是根据键 key 查找 value 所在的位置。先通过哈希函数(hash(key))计算出 key 的存储位置,找到对应的 value。就像平时查字典一样,先根据部首或者拼音找到汉字对应的页码。
1、dict_name[key] —-> 根据key查找value
语法格式:dict_name[key]
根据 key 查找 Value。如果查找的 key 不存在,就会抛出异常 KeyError。
score_dict = {'语文': 95,'数学': 100,'英语': 80}
print(score_dict['语文'])
print(score_dict['数学'])
print(score_dict['英语'])
如果要查找的 key 不存在,就会抛出 KeyError。
score_dict = {'语文': 95,'数学': 100,'英语': 80}
# 如果查找的key键不存在则抛出异常
print(score_dict['地理']) # KeyError: '地理'
2、get(key)方法 —–> 返回指定键(key)对应的值(value)
用于返回指定键(key)对应的值(value)。如果指定的 key 不存在,也不会抛出异常而是返回 None,我们可以通过参数来设置 key 不存在时返回的默认值。
语法格式:dict.get(key[, value])
参数说明:
key:要查找的键 key。
value:可选参数,用于设置指定键不存在时返回的值(也可是用于提示用户该值不存在,比喻说:score_dict.get(‘化学’,’该键不存在’))。
返回值:返回指定键的值,如果指定的键不存在,返回 None,或者通过参数设置默认值。
score_dict = {'语文': 95,'数学': 100,'英语': 80}
print(score_dict.get('数学')) # 100
# 如果查找的key不存在,则返回None
print(score_dict.get('化学')) # None
# 可以通过参数设置查找指定key不存在时返回的默认值
print(score_dict.get('化学',999)) # 999
print(score_dict.get('化学','该键不存在')) # 该键不存在
3、setdefault() —–> 获取指定key对应的value值
获取指定 key 对应的 value 值,如果指定的 key 不存在时,会默认给 key 设置 value 为 None,也可以自己设置这个默认值。
语法格式:dict_name.setdefault(key, default)
参数说明:
key:要查找的键 key。
default:可选参数,key不存在是返回的值,默认为 None,可以自己设置值。
score_dict = {'语文': 95, '数学': 100, '英语': 80, '地理': 99}
# 指定的key存在,则返回对应的value
result = score_dict.setdefault('数学')
print(f'键在字典中对应的值是:{result}') # 100
print(score_dict)
# 指定key不存在时,setdefault会先给这个key设置一个默认的value,默认是None,也可以自己设置,再将这个键值对插入字典中
print(score_dict.setdefault('化学',999))
print(score_dict) # {'语文': 95, '数学': 100, '英语': 80, '地理': 99, '化学': 999}
dict_name[key] 和 get(key) 和 setdefault(key) 获取值的区别:
dict_name[key] :如果指定的 key (键)不存在的话,会抛出异常 KeyError。
get(key) :如果指定的 key (键)不存在的话,返回默认值 None,或者自己通过参数设置的默认值。
setdefault(key):如果指定的 key (键)不存在的话,返回默认值 None,或者自己通过参数设置的默认值,并将这个键值对插入这个字典中。
4、判断指定的key是否存在
in:指定的key在字典中存在则返回True,否则返回False。
not in:指定的key在字典中不存在则返回True,否则返回False。
score_dict = {'语文': 95,'数学': 100,'英语': 80}
print('英语' in score_dict) # True
print('英语' not in score_dict) # False
删除元素的四种方式
1、pop() —–> 删除指定的键值对
获取指定 key 对应的值,并删除这个键值对。
语法格式: pop(key[, default])
参数说明:
key:要删除的键。
default:可选参数,当 key 不存在时返回的值。
返回值:如果指定 key 存在,则返回被删除的字典中 key 对应的元素;如果指定的 key 不存在,则返回设置的默认值 default;如果 key 不存在,且 default 也没指定,则抛出异常 KeyError。
a、指定的 key 存在,则获取 key 对应的值,并删除这个键值对。
score_dict = {'语文': 95,'数学': 100,'英语': 80}
result = score_dict.pop('语文')
print(f'删除的元素是{result}')
print('pop后的字典:',score_dict) # {'数学': 100, '英语': 80}
b、如果指定的 key 不存在,则返回设置的默认值 default;如果 key 不存在,且 default 也没指定,则抛出异常 KeyError。
score_dict = {'语文': 95,'数学': 100,'英语': 80}
# 如果指定的 key 不存在,则返回设置的默认值(可以是字符串,也可以是整数)
str = score_dict.pop('化学','该键不存在')
print(str)
# 若指定key不存在,且没有设置返回的默认值,则抛出异常KeyError
score_dict.pop('化学') # KeyError: '化学'
2、popitem() —–> 删除最后插入的那个键值对
删除最后插入的那个键值对。
语法格式:dict_name.popitem()
返回值:返回删除的那个键值对组成的元组。
score_dict = {'语文': 95,'数学': 100,'英语': 80}
result = score_dict.popitem()
print(f'删除的键值对是:{result}')
print('删除键值对后的字典:',score_dict) # {'语文': 95, '数学': 100}
如果调用这个方法的字典为空,会抛出异常 KeyError。
score_dict = {}
score_dict.popitem()
3、clear() —–> 删除字典中所有键值对
清空字典中所有的键值对,只剩下一个空字典对象。
语法格式:dict_name.clear()
返回值:无参,无返回值。
score_dict = {'语文': 95,'数学': 100,'英语': 80}
print(f'clear前的字典:{score_dict}')
score_dict.clear()
print(f'clear前的字典:{score_dict}')
4、del关键字
删除指定key的键值对,或者删除整个字典。
语法格式:
del dict_name[key] —–> 删除指定 key (键)的键值对,如果指定的 Key 不存在,则抛出异常 KeyError。
del dict_name —–> 删除这个字典,包括字典对象。
score_dict = {'语文': 95,'数学': 100,'英语': 80}
print(f'del前的字典:{score_dict}')
# 删除键名为'语文'的那个键值对
del score_dict['语文']
print(f'del删除指定key后的字典:{score_dict}') # {'数学': 100, '英语': 80}
del 删除整个字典,包括字典对象。
score_dict = {'语文': 95,'数学': 100,'英语': 80}
print(f'del前的字典:{score_dict}')
# 删除整个字典,包括字典对象
del score_dict
print(score_dict) # NameError: name 'score_dict' is not defined
1 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
2 本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报。
3 本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。
暂无评论内容