python字典
来源:互联网 发布:辐射4室内光源优化 编辑:程序博客网 时间:2024/06/05 10:32
1. 简介:
字典是一种键映射到值的数据结构,相当于高级一点的列表, 列表的键只能是0到n的整数,通过数字的索引我们就能访问,修改到相关位置的数据, 字典也一样, 高级的地方就在于, 索引不是系统分配的整数, 而是可以使用自定义的内容来做访问的索引值, 这种特性给编程带来极大的便利,值得注意的是python字典的键必须是不可变的,所以可以用数字,字符串或元组充当,但是不能使用列表,因为列表中的元素可能被无意修改 值可以是任意数据类型, 还有非常重要的一点就是字典内容的存储顺序是无序的,
2. 定义:
定义字典时键与值之间用冒号(:)隔开, 键值对之间用逗号(,)隔开, 将所有完整的键值对放在花括号中({}),就实现的字典的初始化定义, 也可以使用dict()将其他内容转为字典.
d1 = {'one': 1, 'two': 2, 'three': 3} #定义字典d2 = {} #定义空字典#使用其他数据生成字典d3 = dict(one=1, two=2, three=3)d4 = dict(zip(['one', 'two', 'three'], [1, 2, 3]))d5 = dict([('two', 2), ('one', 1), ('three', 3)])d6 = dict({'three': 3, 'one': 1, 'two': 2})
3. 访问与修改:
dict0 = {"name":"Bob", "sex":"F", "age":21} #初始化字典#向字典中插入新的元素,类似于c++的mapdict0["addr"] = "chongqing" #想dict0字典中添加地址"addr"项, 值为"chongqing"#如果使用字典中已经存在的key,那么后面的值将会替换前面的值,这里会将年龄替换为22dict0["age"] = 22#访问字典中的键"name"对应的值name = dict0["name"] #和列表访问方式一样#使用get()函数访问第几个条目t = dict3.get(2)
3.1 删除条目
del dict0["name"] #删除"name"这一项dict0.clear() #删除字典中的所有内容,即设为空字典del dict0 #直接删除字典,这个东西就从世界上消失了t = dict3.pop(1) #pop()函数将会删除字典的键值对,并返回该值
4. 遍历字典
print(dict0) #按输出key-value对, 输入内容和定义时一样的#使用print(d1)输出的内容如下 {'two': 2, 'one': 1, 'three': 3}#如果我们使用:for x in dict0: print(x)#输出的值只有所有键的值, 而不是字典中所有的键值对, 再额外输出dict0[x], 就能输出键值对了for x in dict0: print(x + " : " + repr(dict0[x]))#因为字典中的每项是以tuple存储的, 亦可以使用如下方式遍历输出:for x in dict0: print(str(x[0]) + "->" + str(x[1]))#输出所有键for x in dict0.keys(): print(x)#输出所有值for x in dict0.values(): print(x)#输出键值对for x in dict0.items: print(x)
5. 比较与排序
#比较两个字典是否相同print(dict1 == dict2)from operator import itemgetter#定义新的字典d = {'a':2, 'b':23, 'c':5, 'd':17, 'e':1}#对字典按键升序排序print("按键升序排序")#分别获取容器,容器中单元的排序关键字,下标0,即d[0],表示键,d[1]表示值sd = sorted(d.items(), key = lambda d:d[0])#对字典按键降序序排序print("按键降序序排序")sd = sorted(d.items(), key = lambda d:d[0], reverse = True)#对字典按值升序排序print("按值升序排序")sd = sorted(d.items(), key = lambda d:d[1], reverse = False)#对字典按值降序排序print("按值降序排序")sd = sorted(d.items(), key = lambda d:d[1], reverse = True)
注意:reverse的参数默认是False,即升序排序,要逆序排序请将reverse值该为True,包括sort函数,也可以传递reverse参数设定排序方式
6. 其他
6.1 输出字典中的item的数量
print(len(dict1))
6.2 得到字典的浅复制,即修改复制的字典不会影响到原有的字典
dict3 = dict1.copy()
6.3 “key” in “dict name”判断是否已经包含某个键,功能和c++ map对象的count()一致
print(1 in dict0) #返回bool值
0 0
- Python 字典
- python 字典
- Python:字典
- Python 字典
- python字典
- Python 字典
- python 字典
- python 字典
- Python 字典
- Python字典
- python 字典
- python字典
- python 字典
- python 字典
- python--字典
- python 字典
- python字典
- Python---字典
- 算法代码实现之冒泡排序,Java实现
- 14.UIPickerView
- 【VIP】205. Isomorphic Strings【E】【61】【太经典了】
- 原码,补码和反码总结
- Android如何获得当前应用显示的Activity
- python字典
- hdu 2896 病毒侵袭
- Win7 64位 Visio 32位 "驱动程序和应用程序之间的体系结构不匹配 问题解决 本人亲测"
- 平均时间复杂度为O(n)的选择算法
- 3551: [ONTAK2010]Peaks加强版 kruskal重构树+dfs序+主席树
- 模板_高斯消元
- ListView中的滑动事件与Item的点击事件
- USACO 1.3.1 Mixing Milk
- CSS3 入门1