博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2 -8 字典dict
阅读量:5129 次
发布时间:2019-06-13

本文共 3630 字,大约阅读时间需要 12 分钟。

1 如何在一个变量中存储每个员工的个人信息?

2 字典的定义与特性

字典是Python语言中唯一的映射类型。

  定义:{key1:value1,key2:value2}

 

1、键与值用冒号“:”分开;2、项与项用逗号“,”分开;

  特性:

1.key-value结构2.key必须可hash、且必须为不可变数据类型、必须唯一3.可存放任意多个值、可修改、可以不唯一4.无序 5.查找速度快

 

 假设key对应的hash值为下面的数字,排序然后根据二分法查找这个值所对应的key的hash值,

  二分法查找速度快

 

3 字典的创建

person = {
'name': 'alex','age': 20}person1 = dict(name='seven', age=20)person2 = dict({
'name': 'abc', 'age': 20})person3 = dict((['name', 'abc'], ["def", 18]))dic = {}.fromkeys(['k1','k2'],[])print(dic)#{'k1': [], 'k2': []}dic["k2"].append(1)print(dic)#{'k1': [1], 'k2': [1]}

info = {
'jack': [22, 'mod', 'ui', 555], 'alex': [23, 'it', 'it', 1000]}print(info['jack'])#[22, 'mod', 'ui', 555]print(info['alex'])#[23, 'it', 'it', 1000]print(info['alex'][0])#23info["alex"][1]="老师"print(info)#{'jack': [22, 'mod', 'ui', 555], 'alex': [23, '老师', 'it', 1000]

4 字典的常见操作

增加

1、dic['new_key'] = 'new_value';info = {
'jack': [22, 'mod', 'ui', 555], 'alex': [23, 'it', 'it', 1000]}print(info['jack'])#[22, 'mod', 'ui', 555]print(info['alex'])#[23, 'it', 'it', 1000]print(info['alex'][0])#23info["alex"][1]="老师"print(info)#{'jack': [22, 'mod', 'ui', 555], 'alex': [23, '老师', 'it', 1000]info[24,'eat','ps',678] = "abc"print(info)#{'jack': [22, 'mod', 'ui', 555], 'alex': [23, 'it', 'it', 1000], (24, 'eat', 'ps', 678): 'abc'}2、dic.setdefault(key, None) ,如果字典中不存在Key键,由 dic[key] = default 为它赋值;_info.setdefault("abc","def")print(info)#{'jack': [22, 'mod', 'ui', 555], 'alex': [23, 'it', 'it', 1000], 'abc': 'def'}#注意:setdefault()方法是没有key就新建。有就返回值

 

查看

1、dic['key'],返回字典中key对应的值,若key不存在字典中,则报错;info = {
'jack': [22, 'mod', 'ui', 555], 'alex': [23, 'it', 'it', 1000]}print(info["def"])#Traceback (most recent call last): File "C:/Users/Administrator/PycharmProjects/-1/Demo/其他/other.py", line 480, in
print(info["def"])KeyError: 'def'2、dict.get(key, default = None) 返回字典中key对应的值,若key不存在字典中,则返回default的值(default默认为None)print(info.get("alex"))#[23, 'it', 'it', 1000]print(info.get("def"))#None

删除

1、dic.pop(key[,default]) 和get方法相似。如果字典中存在key,删除并返回key对应的vuale;如果key不存在,且没有给出default的值,则引发keyerror异常;info = {
'jack': [22, 'mod', 'ui', 555], 'alex': [23, 'it', 'it', 1000]}print(info.pop('alex'))#[23, 'it', 'it', 1000]print(info)#{'jack': [22, 'mod', 'ui', 555]}2、dic.clear() 删除字典中的所有项或元素;

 

键、值、键值对

 

1、dic.keys() 返回一个包含字典所有KEY的列表;2、dic.values() 返回一个包含字典所有value的列表;3、dic.items() 返回一个包含所有(键,值)元祖的列表;4、dic.iteritems()、dic.iterkeys()、dic.itervalues() 与它们对应的非迭代方法一样,不同的是它们返回一个迭代子,而不是一个列表;info = {
'jack': [22, 'mod', 'ui', 555], 'alex': [23, 'it', 'it', 1000]}print(info.keys())#dict_keys(['jack', 'alex'])print(info.values())#dict_values([[22, 'mod', 'ui', 555], [23, 'it', 'it', 1000]])print(info.items())#dict_items([('jack', [22, 'mod', 'ui', 555]), ('alex', [23, 'it', 'it', 1000])])

 

修改

1、dic['key'] = 'new_value',如果key在字典中存在,'new_value'将会替代原来的value值;如果不存在就会新建{key:value}info = {
'jack': [22, 'mod', 'ui', 555], 'alex': [23, 'it', 'it', 1000]}info['jack'] = "abc"print(info)#{'jack': 'abc', 'alex': [23, 'it', 'it', 1000]}2、dic.update(dic2) 将字典dic2的键值对添加到字典dic中,key有的话会覆盖info = {
'jack': [22, 'mod', 'ui', 555], 'alex': [23, 'it', 'it', 1000]}dic = {
'name':'abc'}info.update(dic)print(info)#{'jack': [22, 'mod', 'ui', 555], 'alex': [23, 'it', 'it', 1000], 'name': 'abc'}

循环

1、for k in dic.keys()2、for k,v in dic.items()3、for k in dicfor k in dic.keys():    print(k)"""nameagejobhome"""for k ,v in dic.items():    print(k,v)"""name abcage 22job ithome beijing"""for k in dic:    print(k)"""nameagejobhome""" 长度 len(dic)

5 多级字典的嵌套

 

6 字典-练习题

 

转载于:https://www.cnblogs.com/Mobai-c/p/10143642.html

你可能感兴趣的文章
Deque - leetcode 【双端队列】
查看>>
人物角色群体攻击判定(一)
查看>>
一步步学习微软InfoPath2010和SP2010--第九章节--使用SharePoint用户配置文件Web service(2)--在事件注册表单上创建表单加载规则...
查看>>
gulp插件gulp-ruby-sass和livereload插件
查看>>
免费的大数据学习资料,这一份就足够
查看>>
clientWidth、clientHeight、offsetWidth、offsetHeight以及scrollWidth、scrollHeight
查看>>
MySQL(一)
查看>>
企业级应用与互联网应用的区别
查看>>
steelray project viewer
查看>>
itext jsp页面打印
查看>>
HTTP之报文
查看>>
Perl正则表达式匹配
查看>>
Git
查看>>
DB Change
查看>>
nginx --rhel6.5
查看>>
Eclipse Python插件 PyDev
查看>>
selenium+python3模拟键盘实现粘贴、复制
查看>>
第一篇博客
查看>>
typeof与instanceof的区别
查看>>
网站搭建(一)
查看>>