admin管理员组文章数量:1487745
python全栈开发《53.字典的删除》
1.上篇文章的问题总结
代码语言:javascript代码运行次数:0运行复制# 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.get('created_time','2020-02-02'))
values.append(user_info.get('birthday',__default='2020-03-03'))
print(values)
运行结果:
代码语言:javascript代码运行次数:0运行复制/Users/llq/PycharmProjects/pythonlearn/pythonlearn/pythondict/bin/python /Users/llq/PycharmProjects/pythonlearn/pythondict/dict_get.py
Traceback (most recent call last):
File "/Users/llq/PycharmProjects/pythonlearn/pythondict/dict_get.py", line 18, in <module>
values.append(user_info.get('birthday',__default='2020-03-03'))
TypeError: get() takes no keyword arguments
进程已结束,退出代码为 1
错误出现在使用了关键字参数 default=
,而 get()
方法不支持这种用法。正确的调用方式是直接将自定义的默认值(default的值)作为第二个位置参数传递,如下所示:
values.append(user_info.get('birthday', '2020-03-03'))
这样就能正常工作了。
2.clear函数的功能与用法
1)clear功能
清空当前的字典中所有数据。
2)clear用法
dict:代表被处理的字典。
代码语言:javascript代码运行次数:0运行复制my_dict = {'name':'dewei','age':33}
my_dict.clear()
print(my_dict)
运行结果:{}
在学习列表的clear函数的时候,曾经说过,使用clear函数是对变量内容的清空。
而如果给当前变量赋新值,也就是说给它赋予一个空的字典,就是重新在内存中生成一个内存空间。相比之下,使用clear函数会更高效一些。
3.pop函数的功能与用法
1)pop功能
删除字典中指定的key和它对应的value,并将指定key对应的value值返回,如果key不存在则报错。
2)pop用法
dict:是当前需要被处理的字典。
代码语言:javascript代码运行次数:0运行复制my_dict = {'name':'dewei','age':33}
pop_value = my_dict.pop('age')
print('pop_value:',pop_value,'my_dict:',my_dict)
运行结果:
代码语言:javascript代码运行次数:0运行复制/Users/llq/PycharmProjects/pythonlearn/pythonlearn/pythondict/bin/python /Users/llq/PycharmProjects/pythonlearn/pythondict/1.py
pop_value: 33 my_dict: {'name': 'dewei'}
进程已结束,退出代码为 0
4.del在字典中的用法
1)del删除指定的键值对
代码语言:javascript代码运行次数:0运行复制my_dict = {'name':'dewei','age':33}
del my_dict['name']
print(my_dict)
运行结果: {'age': 33}
2)del删除整个字典
代码语言:javascript代码运行次数:0运行复制my_dict = {'name':'dewei','age':33}
del my_dict
print(my_dict)
运行结果:报错。整个字典对象已经被删除。
代码语言:javascript代码运行次数:0运行复制/Users/llq/PycharmProjects/pythonlearn/pythonlearn/pythondict/bin/python /Users/llq/PycharmProjects/pythonlearn/pythondict/1.py
Traceback (most recent call last):
File "/Users/llq/PycharmProjects/pythonlearn/pythondict/1.py", line 3, in <module>
print(my_dict)
NameError: name 'my_dict' is not defined
进程已结束,退出代码为 1
5.代码
代码语言:javascript代码运行次数:0运行复制# coding:utf-8
projects = {
'ipad':{'name':'ipad','price':2200,'desc':'平板电脑'},
'iphone':{'name':'iphone','price':3000,'desc':'智能手机'},
'pc':{'name':'pc','price':5000,'desc':'台式电脑'},
'mac':{'name':'mac','price':8000,'desc':'平板电脑'}
}
print(projects.keys())
print('一个中学生购买了{},价格是{}'.format(projects['pc']['name'],projects['pc']['price']))
projects.pop('pc')
print(projects.keys())
result = projects.pop('mac')
print('一个程序员购买了{},它的价格是{}'.format(result['name'],result.get('price')))
print(projects.keys())
print('{}和{}都被卖出了,他们一共花费了{}元'.format(
projects['ipad']['name'],projects['iphone']['name'],
projects['ipad'] ['price']+projects['iphone']['price']
))
projects.clear()
print(projects.keys())
del projects
print(projects)
运行结果:
代码语言:javascript代码运行次数:0运行复制/Users/llq/PycharmProjects/pythonlearn/pythonlearn/pythondict/bin/python /Users/llq/PycharmProjects/pythonlearn/pythondict/dict_del.py
dict_keys(['ipad', 'iphone', 'pc', 'mac'])
一个中学生购买了pc,价格是5000
dict_keys(['ipad', 'iphone', 'mac'])
一个程序员购买了mac,它的价格是8000
dict_keys(['ipad', 'iphone'])
ipad和iphone都被卖出了,他们一共花费了5200元
dict_keys([])
Traceback (most recent call last):
File "/Users/llq/PycharmProjects/pythonlearn/pythondict/dict_del.py", line 29, in <module>
print(projects)
NameError: name 'projects' is not defined
进程已结束,退出代码为 1
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。原始发表:2024-10-21,如有侵权请联系 cloudcommunity@tencent 删除函数进程开发全栈python本文标签: python全栈开发《53字典的删除》
版权声明:本文标题:python全栈开发《53.字典的删除》 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/shuma/1754657957a3175413.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论