zl程序教程

您现在的位置是:首页 >  后端

当前栏目

Python基础入门-字典

2023-09-11 14:19:05 时间

今天我们来看一下Python中字典的一些常用用法。

关于字典的学习,我们应该了解字典定义及区别与其他数据结构的特点、字典常用操作方法。

好,废话不多说,继续搞事情!

1.字典定义

  字典是花括号包围,元素以键值对的形式存在的且元素之间用冒号分隔得可变得数据结构之一。也是一个唯一具有映射关系的数据结构。关键词:键值对、花括号、可变、序列之一。

2.字典特点


  • 1.无序

  • 2.可变

  • 3.当有重复键产生默认保留最后一个

  • 4.通过键来访问值

3.字典常用操作方法


  • 1.创建、访问、修改、删除

  • 2.keys()

  • 3.values()

  • 4.items()

  • 5.pop()

  • 6.popitems()

  • 7.update()

  • 8.get()

  • 9.setdefault()

  • 10.zip()

1)创建、访问、修改、删除

 创建字典:

dic={'name':'zhangshan',
     'age':15,
     'address':'bejing',
     'telphone':8888,
     'salary':1500}
print dic 

输出结果:

{'salary': 1500, 'age': 15, 'telphone': 8888, 'name': 'zhangshan', 'address': 'bejing'}

访问字典中的值:

dic={'name':'zhangshan',
     'age':15,
     'address':'bejing',
     'telphone':8888,
     'salary':1500}
print dic['name']
print dic['age']  

输出结果如下:

zhangshan
15

删除字典中的键:

dic={'name':'zhangshan',
     'age':15,
     'address':'bejing',
     'telphone':8888,
     'salary':1500}
del dic['name']
print dic 

输出结果如下:

{'salary': 1500, 'age': 15, 'telphone': 8888, 'address': 'bejing'}

修改字典中的值:

dic={'name':'zhangshan',
     'age':15,
     'address':'bejing',
     'telphone':8888,
     'salary':1500}
dic['name'] = 'john'
print dic

输出结果如下:

{'salary': 1500, 'age': 15, 'telphone': 8888, 'name': 'john', 'address': 'bejing'}

2)获取字典中所有的键keys

dic={'name':'zhangshan',
     'age':15,
     'address':'bejing',
     'telphone':8888,
     'salary':1500}
print  dic.keys()

输出结果:

['salary', 'age', 'telphone', 'name', 'address']

3)获取字典中所有的值values

dic={'name':'zhangshan',
     'age':15,
     'address':'bejing',
     'telphone':8888,
     'salary':1500}
print  dic.values()

输出结果如下:

[1500, 15, 8888, 'zhangshan', 'bejing']

4)将字典中的键和值以元组的形式返回items

dic={'name':'zhangshan',
     'age':15,
     'address':'bejing',
     'telphone':8888,
     'salary':1500}
print  dic.items()

输出结果:

[('salary', 1500), ('age', 15), ('telphone', 8888), ('name', 'zhangshan'), ('address', 'bejing')]

5)字典中的get用法

dic={'name':'zhangshan',
     'age':15,
     'address':'bejing',
     'telphone':8888,
     'salary':1500}

print  dic.get('name')            根据现有的键访问键对应的值
print  dic.get('interest','NOT FONUD') 访问不存的键自定义提示信息

输出结果:

zhangshan
NOT FONUD

6)字典中的setdefault用法

dic={'name':'zhangshan',
     'age':15,
     'address':'bejing',
     'telphone':8888,
     'salary':1500}

print  dic.setdefault('name')  #根据键获取对应的值
dic.setdefault('interest','paly') #追加新键以及对应的值
print dic  #打印看结果
dic.setdefault('home')  #设置新键,键对应的值为None
print dic  #查看设置新建的结果 

输出结果如下:

zhangshan
{'salary': 1500, 'name': 'zhangshan', 'age': 15, 'telphone': 8888, 'interest': 'paly', 'address': 'bejing'}
{'salary': 1500, 'name': 'zhangshan', 'age': 15, 'telphone': 8888, 'interest': 'paly', 'address': 'bejing', 'home': None}

7)判断元素是否在字典中in not in

dic = {'name':{'age':115},
       'class':{'home':'beijing'},
       'address':{'from':'shenzhen'},
       'tel':1323232}

print 'name' in dic       判断name键是否在dic中
print 'age' in dic['name']  判断age键是否在dic中
print 'class' in dic    判断class是否在dic中
print 'from' not in dic   判断from键是否在dic中

如果在,返回True,否则False ,最后的输出结果是:

True
True
True
True

8)字典中的pop和popitems用法

pop里面只能放一个参数看,这个参数就是现有字典的键,不能不放。

dic={'name':'zhangshan',
     'age':15,
     'address':'bejing',
     'telphone':8888,
     'salary':1500}

print dic.pop('name')      pop是弹出指定的键并删除
print dic            重新输出dic结果

返回的结果如下:

zhangshan  弹出name键对应的值并且连同键一起删除
{'salary': 1500, 'age': 15, 'telphone': 8888, 'address': 'bejing'}

看看popitems的用法:

dic={'name':'zhangshan',
     'age':15,
     'address':'bejing',
     'telphone':8888,
     'salary':1500}

print dic.popitem()  #popitem函数随机弹出任意键并且删除
print dic
print dic.popitem()
print dic 

返回结果如下:

('salary', 1500)
{'age': 15, 'telphone': 8888, 'name': 'zhangshan', 'address': 'bejing'}
('age', 15)
{'telphone': 8888, 'name': 'zhangshan', 'address': 'bejing'}

注意:popitem函数不跟参数,否则报错:

dic={'name':'zhangshan',
     'age':15,
     'address':'bejing',
     'telphone':8888,
     'salary':1500}

print dic.popitem(1)  #popitem函数随机弹出任意键并且删除
print dic.popitem('name')
print dic

报错信息如下:

  File "E:/Project_case/demo.py", line 31, in <module>
    print dic.popitem(1)  #popitem函数随机弹出任意键并且删除
TypeError: popitem() takes no arguments (1 given)

9)补充:字典中当有重复键产生时,默认保留最后一个键

dic={'name':'zhangshan','age':15,'address':'bejing','telphone':8888,'salary':1500,'name':'wangwu'}

输出结果:

{'salary': 1500, 'age': 15, 'telphone': 8888, 'name': 'wangwu', 'address': 'bejing'}

10)字典中的键不可变,所以可变对象不可以做字典的键,否则报错

可变对象:列表、字典、集合

不可变对象:字符串、元祖、常量(数字)

dic={[]:123,{}:456}
dic1={"name":'zhangshan',345:444}
dic2={(1,2,3):'name','age':23}
print dic  报错  
print dic1 可以运行  
print dic2 可以运行  

11)字典中的update用法

dic={'gender': 'man', 'age': 150, 'from': 'beijing'}
print dic
dic1={}       #定义空字典
dic1.update(dic)  #更新dic内容到dic1
print dic1

输出结果:

{'gender': 'man', 'age': 150, 'from': 'beijing'}
{'gender': 'man', 'age': 150, 'from': 'beijing'}

12)字典中的zip函数用法

zip函数可以将可迭代的对象通过元祖的形式返回,存储在列表中,和items的用法类似。

list = [22,33,44,55,66]
list2 =['python','java','php','ruby','javascript']
demo = zip(list,list2)
print demo

输出结果如下:

[(22, 'python'), (33, 'java'), (44, 'php'), (55, 'ruby'), (66, 'javascript')]

我们在对比下items的实现方式:

dic={'oracle':99,'linux':66,'python':70,'selenium':100}
print dic.items()

输出结果如下:

[('oracle', 99), ('python', 70), ('selenium', 100), ('linux', 66)]

是不是一样的呢?OK,关于字典的一些常用方法,我们暂时介绍到这里。