Python语言中的字典使用大括号{}建立,每个元素是一个键值对,使用方式如下:
{<键1>:<值1>, <键2>:<值2>, ... , <键n>:<值n>}
其中,键和值通过冒号连接,不同键值对通过逗号隔开。字典类型也具有和集合类似的性质,即键值对之间没有顺序且不能重复。
列表类型采用元素顺序的位置进行索引。由于字典元素“键值对”中键是值的索引,因此,可以直接利用键值对关系索引元素。
字典中键值对的索引模式如下,采用中括号格式:
<值>= <字典变量>[<键>]
print(d[‘201801’])
输出的也就是: 小明
使用大括号可以创建字典。通过索引和赋值配合,可以向字典中增加元素。
字典是存储可变数量键值对的数据结构,键和值可以是任意数据类型,通过键索引值,并可以通过键修改值。
字典类型有一些通用的操作函数
dict()函数用于生成一个空字典,作用和{}一致
字典类型存在一些操作方法,使用语法形式是:
<字典变量>.<方法名称>(<方法参数>)
d.keys()返回字典中的所有键信息,返回结果是Python的一种内部数据类型dict_keys,专用于表示字典的键。如果希望更好的使用返回结果,可以将其转换为列表类型。
d.values()返回字典中的所有值信息,返回结果是Python的一种内部数据类型dict_values。如果希望更好的使用返回结果,也可以将其转换为列表类型。
d.items()返回字典中的所有键值对信息,返回结果是Python的一种内部数据类型dict_items。当然也可以转成列表类型 即: list(d.items())
d.get(key, default)根据键信息查找并返回值信息,如果key存在则返回相应值,否则返回默认值,第二个元素default可以省略,如果省略则默认值为空。 例如: 就拿上边的数组d 来说 d.get(‘201801’,“不存在”) 相当于一个if语句 如果key 201801 存在 就返回201801 values 不存在就返回 默认值 不存在
d.pop(key, default)根据键信息查找并取出值信息,如果key存在则返回相应值,否则返回默认值,第二个元素default可以省略,如果省略则默认值为空。相比d.get()方法,d.pop()在取出相应值后,将从字典中删除对应的键值对。 和d.get方法类似
d.popitem()随机从字典中取出一个键值对,以元组(key,value)形式返回。取出后从字典中删除这个键值对。
d.clear()删除字典中所有键值对。
此外,如果希望删除字典中某一个元素,可以使用Python保留字del。 即: del d[key]
字典类型也支持保留字in,用来判断一个键是否在字典中。如果在则返回True,否则返回False。
与其他组合类型一样,字典可以遍历循环对其元素进行遍历,基本语法结构如下:
for <变量名>in <字典名>
<语句块>
for循环返回的变量名是字典的索引值。如果需要获得键对应的值,可以在语句块中通过get()方法获得。
以上就是本章的所有内容,感谢大家.
Python 学习的基础(持续更新中......)
字典本身就是无序的,想让字典排序可以使用
sorted(dic,value,reverse)函数
按照键值排序:print sorted(D.iteritems(),key = lambda asd:asd[0])
[('a', 1), ('b', 2), ('c', 3)]
print sorted(D.iteritems(),key = lambda asd:asd[0],reverse=True)
[('c', 3), ('b', 2), ('a', 1)]
按照values排序:
print sorted(D.iteritems(),key = lambda asd:asd[1])
[('a', 1), ('b', 2), ('c', 3)]
print sorted(D.iteritems(),key = lambda asd:asd[1],reverse=True)
[('c', 3), ('b', 2), ('a', 1)]
添加键值对首先定义一个空字典
>>>dic={}
直接对字典中不存在的key进行赋值来添加
>>>dic['name']='zhangsan'
>>>dic
{'name': 'zhangsan'}
如果key或value都是变量也可以用这种方法
>>>key='age'
>>>value=30
>>>dic[key]=value
>>>dic
{'age': 30. 'name': 'zhangsan'}
这里可以看到字典中的数据并不是按先后顺序排列的,如果有兴趣,可以搜一搜数据结构中的——哈希表
从python3.7开始,字典按照插入顺序,实现了有序。修改一个已存在的key的值,不影响顺序,如果删了一个key后再添加该key,该key会被添加至末尾。标准json库的dump(s)/load(s)也是有序的
还可以用字典的setdefault方法
>>>dic.setdefault('sex','male')
'male'
>>>key='id'
>>>value='001'
>>>dic.setdefault(key,value)
'001'
>>>dic
{'id': '001', 'age': 30. 'name': 'zhangsan', 'sex': 'male'}