Python3学习7 字典及其常用方法
2019-02-03 20:46
615 查看
字典
形式:{key1: value, key2: value, …}
1.访问方式通过键来获取对应的值
2.字典是无序的,不能切片
3.键不能重复,值可以重复
4.键值必须为不可变类型,例如:数字、字符串、元组
5.字典为可变类型
d1 = {[1]: 23, [2]: [34, 89], [3]: 56} # TypeError: unhashable type: 'list'
一、字典的创建与遍历
创建
d1 = {'k1':45,'k2':56}
创建空字典
# 方法1 d1 = {} # 方法2 d1 = dict()
遍历
d1 = {'k1': 23, 'k2': [34, 89], 'k3': 56} # 方法1 for key, value in d1.items(): print(key, value) # 方法2 for key in d1.keys(): print(key, d1[key]) # 方法3 for key in d1: # 最常用 print(key, d1[key]) """输出: k1 23 k3 56 k2 [34, 89] k1 23 k3 56 k2 [34, 89] k1 23 k3 56 k2 [34, 89] """
二、字典的增加
d = dict() d['k3']=45 d1={'k1':12,'k2':34} d.update(d1) print(d) # {'k2': 34, 'k1': 12, 'k3': 45}
三、字典的删除
pop()
d1={'k1':12,'k2':34,'k3':56,'k4':67} d1.pop('k1') # 指定键值 print(d1) # {'k4': 67, 'k3': 56, 'k2': 34}
popitem() 随机删除
d1={'k1':12,'k2':34,'k3':56,'k4':67} d1.popitem() # 随机删除 print(d1) # {'k4': 67, 'k1': 12, 'k3': 56}
del
d1={'k1':12,'k2':34,'k3':56,'k4':67} del d1['k1'] print(d1) # {'k2': 34, 'k3': 56, 'k4': 67} del d1 print(d1) # NameError: name 'd1' is not defined
clear() 清空
d1={'k1':12,'k2':34,'k3':56,'k4':67} d1.clear() # 清空 print(d1) # {}
四、字典的查询
get(),items(),keys(),values()
d1={'k1':12,'k2':34,'k3':56,'k4':67} print(d1.get('k8')) # 根据键值查value值 # None print(d1.items()) # 以列表形式,返回可遍历的元组----key和value # dict_items([('k4', 67), ('k1', 12), ('k2', 34), ('k3', 56)]) print(d1.keys()) # dict_keys(['k4', 'k1', 'k2', 'k3']) print(d1.values()) # dict_values([67, 12, 34, 56])
五、其他方法
1、fromkeys
把一个列表、元组、字典的key赋给另一个字典
元组:
k = ('k1', 'k2', 'k3') # 元组 列表都行 d2 = dict.fromkeys(k) print(d2) # {'k3': None, 'k1': None, 'k2': None}
字典:
d1={'k1':12,'k2':34,'k3':56,'k4':67} v = d1.fromkeys(['k1', 'k2', 'k8'], 'aa') print(d1) # {'k3': 56, 'k2': 34, 'k4': 67, 'k1': 12} print(v) # {'k8': 'aa', 'k2': 'aa', 'k1': 'aa'}
2、setdefault
如果key存在,就返回value,不存在就创建
d1={'k1':12,'k2':34,'k3':56,'k4':67} t = d1.setdefault('k2') print(d1) print(t) """输出 {'k2': 34, 'k4': 67, 'k3': 56, 'k1': 12} 34 """
d1={'k1':12,'k2':34,'k3':56,'k4':67} t = d1.setdefault('k8') t2 = d1.setdefault('k9', 'aa') print(d1) print(t) print(t2) """输出: {'k3': 56, 'k1': 12, 'k4': 67, 'k2': 34, 'k9': 'aa', 'k8': None} None aa """
3、zip
zip 从参数中的多个迭代器中取出元素组成一个新的迭代器
l1 = ['a', 'b', 'c', 'd'] l2 = [1, 2, 3, 4] d = dict(zip(l1, l2)) print(d) """输出 {'c': 3, 'd': 4, 'b': 2, 'a': 1} """
3.1 行列相同,正常对应位置组合
m = [1, 2, 3] n = ['a', 'b', 'c'] v = list(zip(m, n)) print(v) # [(1, 'a'), (2, 'b'), (3, 'c')]
3.2 行列不同,以最小的行列组合
m = [1, 2] n = ['a', 'b', 'c'] v = list(zip(m, n)) print(v) # [(1, 'a'), (2, 'b')]
3.3 逆过程 * zip
m = [1, 2, 3] n = ['a', 'b', 'c'] v = list(zip(m, n)) # zip 打包 print(v) # [(1, 'a'), (2, 'b'), (3, 'c')] v2 = list(zip(*v)) # * zip 拆包 print(v2) # [(1, 2, 3), ('a', 'b', 'c')]
3.4 小结
zip不能直接输出,要转成列表、字典或其它形式,例如:list(zip(arg1, arg2))
m = [1, 2, 3] n = ['a', 'b', 'c'] v = zip(m, n) print(type(v)) # <class 'zip'>
zip可以遍历
a = [1, 2, 3] b = [4, 5, 6] for m in zip(a, b): print(m) # 一个参数出来的是元组 """输出: (1, 4) (2, 5) (3, 6) """ for m, n in zip(a, b): print(m * n) # 4 10 18
相关文章推荐
- Python学习入门基础教程(learning Python)--8.3 字典常用的方法函数介绍
- Python3学习8 集合及其常用方法
- 字典的fromkeys()方法 分类: python基础学习 2013-06-15 16:31 305人阅读 评论(0) 收藏
- 【OC学习-19】NSDictionary字典对象的初始化以及常用操作方法归纳
- Python全栈学习Day5 字典及其嵌套
- python学习九:SocektServer学习、bisect、list的sort详解、清空字典的两种方法、zip初探
- python数据类型及其常用方法
- 少说话多写代码之Python学习019——字典的方法(update、values)
- Python学习系列(五)(文件操作及其字典)
- Python学习实践----比较字典中是否有相同键值的方法之一
- Python学习之路【第二篇】-pyc简介、Python常用的数据类型及其用法和常用运算符
- python列表、元组、字典的介绍及常用方法
- python 列表,元组,字典,字符串常用方法
- python中字典的常用方法
- Python合并两个字典的常用方法与效率比较
- python 学习笔记12(序列常用方法总结)
- java学习总结(16.07.14)String类及其的常用方法
- Python+NLTK自然语言处理学习(二):常用方法(similar、common_contexts、generate)
- python学习(3)——字典,函数及其高级特性
- python学习—Day39—memcache常用方法