Python教程

python第八天 关于字典的学习

本文主要是介绍python第八天 关于字典的学习,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

字典的处理比列表的处理速度更加快.字典的组成是由键和值的.字典也是存在增删改查的,还有字典的推导式也是存在的.字典是一个好东西.

  1. 新建字典的方法
#1
>>> a = {"1":"2"}
>>> type(a)
<class 'dict'>
#2
>>> s = {"吕布":"傻喜","关羽":"关老弟"}
>>> s
{'吕布': '傻喜', '关羽': '关老弟'}
#3
b = dict(爱情="钱",友情="也需要钱")
#4
c = dict(['广东','广州'],('重庆','路痴'))
#5 格外增加字典
e = dict({"吕布":"傻喜","关羽":"关老弟"},貂蝉='老婆')
#6
f = dict(zip(['a','b','c'],['e','f','g']))

2.修改字典

#使用fromkeys创建一个字典
>>> s = dict.fromkeys("abcd",333)
>>> s
{'a': 333, 'b': 333, 'c': 333, 'd': 333}
#修改
>>> s ["a"] = 999
>>> s
{'a': 999, 'b': 333, 'c': 333, 'd': 333}
#如果修改的键值是不存在的,会在字典的末尾进行添加上字典
>>> s['e'] = 0
>>> s
{'a': 999, 'b': 333, 'c': 333, 'd': 333,'e':0}

2.删除字典的某一个键值,使用pop方法

#1 删除指定的键值
>>> s.pop("e")
0
#2 如果删除的内容不存在,则报错
>>> s.pop("q")
Traceback (most recent call last):
  File "<pyshell#27>", line 1, in <module>
    s.pop("q")
KeyError: 'q'
#可以添加上自己的定义的错误信息则不会报错
>>> s.pop("q",'')
'暂时没有找到这个键值'
#3 删除字典的最后末尾的那一个键值
>>> s.popitem()
('e', 0)
#4 使用del方法进行删除指定的键值
del s["e"]	#也可以直接删除整一个字典 del s
#5 使用clear方法清除字典的全部内容
s.clear()

3.修改字典

#使用fromkeys创建一个字典
>>> s = dict.fromkeys("abcd",333)
>>> s
{'a': 333, 'b': 333, 'c': 333, 'd': 333}
#修改
>>> s ["a"] = 999
>>> s
{'a': 999, 'b': 333, 'c': 333, 'd': 333}
#如果修改的键值是不存在的,会在字典的末尾进行添加上字典
>>> s['e'] = 0
>>> s
{'a': 999, 'b': 333, 'c': 333, 'd': 333,'e':0}

#2
#新建一个字典
>>> d = dict.fromkeys("ipconfig")
>>> d
{'i': None, 'p': None, 'c': None, 'o': None, 'n': None, 'f': None, 'g': None}
#2.1
>>> d['i'] = 222
>>> d
{'i': 222, 'p': None, 'c': None, 'o': None, 'n': None, 'f': None, 'g': None}
#2.2 使用update进行更新字典的键值对
>>> d.update({'p':234})
>>> d
{'i': 222, 'p': 234, 'c': None, 'o': None, 'n': None, 'f': None, 'g': None}
#2.2.1
>>> d.update(f="33",i="555")
>>> d
{'i': '555', 'p': 234, 'c': None, 'o': None, 'n': None, 'f': '33', 'g': None}

4.查找字典

>>> d
{'i': '555', 'p': 234, 'c': None, 'o': None, 'n': None, 'f': '33', 'g': None}
>>> d["i"]
'555'
#可以使用get方法如果没有找到指定的键也是不会报错的
>>> d.get('t',"没有t")

#如果找不到字典则会进行在末尾进行创建一个新的键值匹配,方法setdefault
>>> d.setdefault("C","code")
'code'

5.获取键值

>>> keys = d.keys()
>>> values = d.values()
>>> items = d.items()
>>> items
dict_items([('i', '555'), ('p', 234), ('c', None), ('o', None), ('n', None), ('f', '33'), ('g', None), ('C', 'code')])
>>> values
dict_values(['555', 234, None, None, None, '33', None, 'code'])
>>> keys
dict_keys(['i', 'p', 'c', 'o', 'n', 'f', 'g', 'C'])
#删除键值
>>> d.pop('C')
'code'
#查看键
>>> keys
dict_keys(['i', 'p', 'c', 'o', 'n', 'f', 'g'])
#查看值
>>> values
dict_values(['555', 234, None, None, None, '33', None])

6.字典也是支持浅拷贝的

>>> e = d.copy()
>>> e
{'i': '555', 'p': 234, 'c': None, 'o': None, 'n': None, 'f': '33', 'g': None}
>>> d
{'i': '555', 'p': 234, 'c': None, 'o': None, 'n': None, 'f': '33', 'g': None}

7.其他用法

#如何获取键值的对数
>>> len(d)
7
#判断键值是否存在字典之中
>>> "i" in d
True
>>> "c" not in d
False
#把键转换为列表,并不会影响之前的列表
>>> list(d)
['i', 'p', 'c', 'o', 'n', 'f', 'g']
>>> d
{'i': '555', 'p': 234, 'c': None, 'o': None, 'n': None, 'f': '33', 'g': None}
#把值转换成列表
>>> list(d.values())
['555', 234, None, None, None, '33', None]
#迭代器,更加节省内存
>>> e = iter(d)
>>> next(e)
'i'
>>> next(e)
'p'
>>> next(e)
'c'
>>> next(e)
'o'
#使字典进行值进行反转,但是并不会影响字典本来的值
>>> list(reversed(d.values()))
[None, '33', None, None, None, 234, '555']
>>> d
{'i': '555', 'p': 234, 'c': None, 'o': None, 'n': None, 'f': '33', 'g': None}

8.字典的嵌套,俗称二维

>>> d = {"吕布":{"语文":22,"数学":33},"曹操":{"语文":232,"数学":333}}
>>> d
{'吕布': {'语文': 22, '数学': 33}, '曹操': {'语文': 232, '数学': 333}}
>>> d["吕布"]['数学']
33
>>> d = {"吕布":[3,5,3],"曹操":[43,55,22]}
>>> d['吕布'][1]
5

9.字典的推导式

# 1
d = {"u":33,'q':44}
>>> b = {v:k for k,v in d.items()}
>>> b
{33: 'u', 44: 'q'}

#2 使用推导式找出字母的un编码
>>> d = {x:ord(x) for x in "ujeg"}
>>> d
{'u': 117, 'j': 106, 'e': 101, 'g': 103}

#3 二维?推导式
>>> d = {x:y for x in [1,3,5] for y in [2,4,6]}
>>> d
{1: 6, 3: 6, 5: 6}
这篇关于python第八天 关于字典的学习的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!