Python基础——字典
2016-08-01 22:28
381 查看
字典的定义
字典是一种映射类型,即它的每一个成员包含key和value两个部分。Python中字典使用{}来包含成员,每一个成员用key:value来表示。
key不能对应多个value。
空的字典直接使用一个{}来表示:
if __name__ == "__main__": aDict = {} print type(aDict)这里打印的是<type 'dict'>。
字典的key必须是不可变类型,且必须是唯一的。
不可变类型包括字符串,整型,元组等。
下面是一个例子:
if __name__ == "__main__": aDict = {} aDict[1] = "one" # integer as key. aDict["one"] = 1 # string as key. aDict[(1,2)] = "one two" # tuple as key. print aDict打印的结果是{(1, 2): 'one two', 1: 'one', 'one': 1}。
这里还可以看到几点:
1. 字典的成员可以直接添加,也就是说字典是可变的;
2. 成员的添加可以通知直接赋值就可以;
当然字典也可以直接在初始化的时候赋值:
if __name__ == "__main__": aDict = {1: "one", "one": 1, (1, 2): "one two"} print aDict
字典的操作函数
首先说两个不算函数的操作:1. aDict[k] = v,表示给字典赋值;
2. aDict[k],表示访问字典中的值;
Python中有del语句可以用来删除字典中的成员:
if __name__ == "__main__": aDict = {1: "one", "one": 1, (1, 2): "one two"} del aDict[1] del aDict["one"] del aDict[(1, 2)] print aDict打印的结果是{}。
Python中有字典的工厂函数dict(),用来构建字典,下面是几个例子:
if __name__ == "__main__": aDict = dict(x = 1, y = 2) print aDict bDict = dict([('x', 1), ('y', 2)]) print bDict cDict = dict([['x', 1], ['y', 2]]) print cDict
要获取字典的长度,即键值对的个数,可以使用len()函数:
if __name__ == "__main__": aDict = dict(one = 1, two = 2) print aDict # {'two': 2, 'one': 1} print len(aDict) # 2
字典中的key可以用in/not in来判断:
if __name__ == "__main__": aDict = dict(one = 1, two = 2) if("one" in aDict): # yes print "yes" else: print "no" if (1 in aDict): # no print "yes" else: print "no"可以看到之后key可以用来判断,用value不能用来判断。
字典用于字符串格式化
字典的格式化输出:if __name__ == "__main__": aDict = {"name": "John", "age": 18} print "My name is %(name)s, my age is %(age)f" % aDict
这里需要注意的是%()之后还需要跟具体的转换类型,比如s表示转字符串,f表示转浮点数。
还需要注意,格式化转换时,键只能是字符串:
aDict = {"name": "John", 1: 18} print "My name is %(name)s, my age is %(1)f" % aDict # Error会报错:
Traceback (most recent call last): File "d:\Code\Python\src\dict.py", line 25, in <module> print "My name is %(name)s, my age is %(1)f" % aDict # Error KeyError: '1'
字典的方法
下面是字典的方法举例:#coding=utf-8 # # This file talks about dictionary in Python. # if __name__ == "__main__": aDict = {"name": "John", "age": 18} bDict = aDict.copy() # 生成一个新的字典,与原字典有相同的键值对;需要注意一个浅拷贝和深拷贝的问题,深拷贝用deepcopy()函数. print bDict # {"age": 18, 'name': 'John'}. bDict.clear() # 清除所有字典项. print bDict # {}. aList = ["name", "age"] print {}.fromkeys(aList) # {'age': None, 'name': None} # 将列表中的值作为键创建新的字典,值为None. print aDict.get("name") # John # get()也用来访问值,但是它遇到不存在的键时不会报错,而是返回None. print aDict.get("sex") # None. #print aDict["sex"] # 报错. print aDict.has_key("sex") # False # 判断键是否存在. print aDict.items() # [('age', 18), ('name', 'John')] # 返回成元组的列表. print aDict.iteritems() # <dictionary-itemiterator object at 0x0000000003480368> # 返回的是一个元组的迭代器. print aDict.keys() # ['age', 'name'] # 返回键列表. print aDict.iterkeys() # <dictionary-keyiterator object at 0x00000000031C0368> # 返回的是一个键的迭代器. print aDict.values() # [18, 'John'] # 返回值列表. print aDict.itervalues() # <dictionary-valueiterator object at 0x0000000003060368> # 返回的是一个值得迭代器. print aDict.setdefault("name", "NA") # John # 原始存在的键则返回其值. print aDict.setdefault("sex", "Male") # Male # 原始不存在的键则添加,并返回其值. print aDict # {'age': 18, 'name': 'John', 'sex': 'Male'}. print aDict.pop("name") # John # 删除一个键值对,并返回键对应的值. print aDict # {'age': 18, 'sex': 'Male'}. print aDict.popitem() # ('age', 18) # 随机的弹出一个键值对. print aDict # {'sex': 'Male'}. updateDict = {"age": 80, "sex": "Female"} aDict.update(updateDict) # 更新字典,包括添加和修改. print aDict # {'age': 80, 'sex': 'Female'}.
相关文章推荐
- CDays-3 习题二 (字典及文件读取练习)及相关内容解析。Python 基础教程
- [Python入门及进阶笔记]Python-基础-字典小结
- python基础教程之字典操作详解
- python基础(序列,元祖,列表,字典,对象,类)
- python基础教程_学习笔记6:字典
- Python3基础知识(二)---- 元组、列表、字典、文件
- 【Python基础学习篇】Python字典
- python基础数据结构——列表(list), 元祖(tuple), 字典(dict), 字符串(string), 集合(set) 介绍及相互转换
- Python基础(3) - 数据类型:5字典类型
- python 基础教程之字符串字典
- 【Python基础】之对字典进行排序操作(sort by the values of dict)
- python基础复习--2字典 列表
- Python学习入门基础教程(learning Python)--8.1 字典数据添加与删除
- python基础教程之字典操作详解
- 【原】Python基础-字典
- [Python入门及进阶笔记]Python-基础-字典小结
- Python学习入门基础教程(learning Python)--8.3 字典常用的方法函数介绍
- Python基础 6 ---- Python 元组+列表+字典+文件
- Python基础编程(四)字典:当索引不好用时
- Python基础教程之第4章 字典: 当索引不好用时