首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >python全栈开发《53.字典的删除》

python全栈开发《53.字典的删除》

作者头像
清菡
发布2024-10-22 18:41:04
发布2024-10-22 18:41:04
14400
代码可运行
举报
文章被收录于专栏:清菡软件测试清菡软件测试
运行总次数:0
代码可运行

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的值)作为第二个位置参数传递,如下所示:

代码语言:javascript
代码运行次数:0
运行
复制
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.com 删除

本文分享自 清菡软件测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.上篇文章的问题总结
  • 2.clear函数的功能与用法
    • 1)clear功能
    • 2)clear用法
  • 3.pop函数的功能与用法
    • 1)pop功能
    • 2)pop用法
  • 4.del在字典中的用法
    • 1)del删除指定的键值对
    • 2)del删除整个字典
  • 5.代码
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档