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

代码语言: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 删除函数进程开发全栈python

本文标签: python全栈开发《53字典的删除》