my_dict = {'name':'dewei','age':33}
name = my_dict['name']
print(name)
运行结果:dewei
获取当前字典中指定key的value。
dict:是被处理的字典。
get()内有2个参数。key:是需要获取的value对应的key。
default:默认这个参数可以不用传。如果key不存在于被处理的字典中,则会返回这个默认值None。
如果default这个参数不传,默认是一个None。当然也可以自定义这个default的值。它可以是任意的类型。
my_dict = {'name':'dewei','age':33}
name = my_dict.get('name')
print(name)
运行结果:dewei
如果在工作中能确定某个key存在字典中,就可以使用[]的形式。因为这种方式没有太多的逻辑判断。速度更快。
而get函数要判断这个key是否存在。如果不存在,就使用默认值来替代。所以相比[]的形式,可能会慢一些。
具体的使用,要看工作中的场景。当然,它们之间的速度差,一般是感觉不到的。
例1:使用[]这种方式获取的key不存在字典中。
# coding:utf-8
user_info = {
'id':1,
'username':'dewei',
'password':'abcdefg',
'created_time':'2020-01-01 11:11:11'
}
values = []
values.append(user_info['id'])
values.append(user_info['username'])
values.append(user_info['password'])
values.append(user_info['created_time'])
print(values)
values.append(user_info['birthday'])
运行结果:报错。
/Users/llq/PycharmProjects/pythonlearn/pythonlearn/pythondict/bin/python /Users/llq/PycharmProjects/pythonlearn/pythondict/dict_get.py
[1, 'dewei', 'abcdefg', '2020-01-01 11:11:11']
Traceback (most recent call last):
File "/Users/llq/PycharmProjects/pythonlearn/pythondict/dict_get.py", line 16, in <module>
values.append(user_info['birthday'])
KeyError: 'birthday'
进程已结束,退出代码为 1
例2:用get函数这种方式获取的key不存在字典中。
# coding:utf-8
user_info = {
'id':1,
'username':'dewei',
'password':'abcdefg',
'created_time':'2020-01-01 11:11:11'
}
values = []
values.append(user_info['id'])
values.append(user_info['username'])
values.append(user_info['password'])
values.append(user_info['created_time'])
print(values)
# values.append(user_info['birthday'])
values.append(user_info.get('birthday'))
print(values)
运行结果:输出默认值None。
/Users/llq/PycharmProjects/pythonlearn/pythonlearn/pythondict/bin/python /Users/llq/PycharmProjects/pythonlearn/pythondict/dict_get.py
[1, 'dewei', 'abcdefg', '2020-01-01 11:11:11']
[1, 'dewei', 'abcdefg', '2020-01-01 11:11:11', None]
进程已结束,退出代码为 0
例3:用get函数这种方式获取的key不存在字典中,给get函数自定义添加一个默认值(default的值)。
# coding:utf-8
user_info = {
'id':1,
'username':'dewei',
'password':'abcdefg',
'created_time':'2020-01-01 11:11:11'
}
values = []
values.append(user_info['id'])
values.append(user_info['username'])
values.append(user_info['password'])
values.append(user_info['created_time'])
print(values)
# values.append(user_info['birthday'])
values.append(user_info.get('birthday','1986-01-01'))
print(values)
运行结果:输出自定义的默认值。
/Users/llq/PycharmProjects/pythonlearn/pythonlearn/pythondict/bin/python /Users/llq/PycharmProjects/pythonlearn/pythondict/dict_get.py
[1, 'dewei', 'abcdefg', '2020-01-01 11:11:11']
[1, 'dewei', 'abcdefg', '2020-01-01 11:11:11', '1986-01-01']
进程已结束,退出代码为 0
例4:key存在于字典中,使用get函数。get函数中自定义了默认值。
# coding:utf-8
user_info = {
'id':1,
'username':'dewei',
'password':'abcdefg',
'created_time':'2020-01-01 11:11:11'
}
values = []
values.append(user_info['id'])
values.append(user_info['username'])
values.append(user_info['password'])
# values.append(user_info['created_time'])
values.append(user_info.get('created_time','2020-02-02'))
print(values)
# values.append(user_info['birthday'])
values.append(user_info.get('birthday','1986-01-01'))
print(values)
运行结果:不会使用在get函数中自定义的默认值。
/Users/llq/PycharmProjects/pythonlearn/pythonlearn/pythondict/bin/python /Users/llq/PycharmProjects/pythonlearn/pythondict/dict_get.py
[1, 'dewei', 'abcdefg', '2020-01-01 11:11:11']
[1, 'dewei', 'abcdefg', '2020-01-01 11:11:11', '1986-01-01']
进程已结束,退出代码为 0
例5:在字典中加入一个新的键值对'birthday':None
。
# coding:utf-8
user_info = {
'id':1,
'username':'dewei',
'password':'abcdefg',
'created_time':'2020-01-01 11:11:11',
'birthday':None
}
values = []
values.append(user_info['id'])
values.append(user_info['username'])
values.append(user_info['password'])
# values.append(user_info['created_time'])
values.append(user_info.get('created_time','2020-02-02'))
# values.append(user_info['birthday'])
values.append(user_info.get('birthday','2020-03-03'))
print(values)
# values.append(user_info['birthday'])
# values.append(user_info.get('birthday','1986-01-01'))
# print(values)
运行结果:无论字典里的key和value是什么类型的,只要它可以被存入字典中,并且存在的,就可以被成功获取。
/Users/llq/PycharmProjects/pythonlearn/pythonlearn/pythondict/bin/python /Users/llq/PycharmProjects/pythonlearn/pythondict/dict_get.py
[1, 'dewei', 'abcdefg', '2020-01-01 11:11:11', None]
进程已结束,退出代码为 0