dict
的创建Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。注意字典内各个部分是没有顺序的区别的;
其java的map是一样的,属于key:value模式,一个简单的例子如下:
>>> d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
>>> d['Michael']
95
或者直接通过构造函数dict()来直接创建字典:
>>> dict([('sape',4321),('guido',3253),('jack',3235)])
{'sape': 4321, 'jack': 3235, 'guido': 3253}
>>> dict(sap=2232,guido=1123,jack=8325)
{'sap': 2232, 'jack': 8325, 'guido': 1123}
或者通过字典推导式:
>>> {x: x**2 for x in (2, 4, 6)}
{2: 4, 4: 16, 6: 36}
注意:
每个键与值用冒号隔开(:),每对用逗号,每对用逗号分割,整体放在花括号中({})。
键必须独一无二,但值则不必。
值可以取任何数据类型,但必须是不可变的,如字符串,数组或元组。
获取key对应的value可以用最简单的:
>>> d={'Michael':95,'Bob':82,'Tracy':94}
>>> d['Michael']
95
也可以用get
方法
>>> d.get("Bob")
92
如果要找的key
在dict
中不存在,那么用d[key]
的方式会报错,如下:
>>> d={'Michael':95,'Bob':82,'Tracy':94}
>>> d['a']
Traceback (most recent call last):
File "" , line 1, in <module>
d['a']
KeyError: 'a'
如果是用get
方法则会返回None
(在交互式界面看起来是没返回的样子)
>>> d={'Michael':95,'Bob':82,'Tracy':94}
>>> d.get('Thomas')
如果用get(key, return)
方式,则如果key
在字典不存在则返回return
,如果存在则返回其value
,例如:
>>> d={'Michael':95,'Bob':82,'Tracy':94}
>>> d.get('Thomas',-1)
-1
>>> d.get('Bob',-1)
92
要修改其中一个值则可以用如下方式直接修改:
>>> d={'Michael':95,'Bob':82,'Tracy':94}
>>> d['Michael']
95
>>> d['Bob']=92
>>> d
{'Bob': 92, 'Michael': 95, 'Tracy': 94}
要新增则使用方法setdefault(key,value)
,范例如下:
>>> d={'Michael':95,'Bob':92,'Tracy':94}
>>> d.setdefault('susan',2034)
2034
>>> d
{'Bob': 92, 'Michael': 95, 'Tracy': 94, 'susan': 2034}
>>> d={'Bob':92,'Michael':95,'Tracy':94,'susan':2034}
>>> d.pop("susan")
2034
>>> d
{'Bob': 92, 'Michael': 95, 'Tracy': 94}
或者
>>> d={'Michael':95,'Tracy':94}
>>> del d['Tracy']
>>> d
{'Michael': 95}
>>> d={'Bob':92,'Michael':95,'Tracy':94}
>>> d.popitem()
('Bob', 92)
>>> d
{'Michael': 95, 'Tracy': 94}
>>> d={'Michael':95}
>>> d.clear()
>>> d
{}
如果我们想判断dict中是否有某个key
,可以用in
来判断,方法如下所示:
>>> d={'Michael':95,'Bob':92,'Tracy':94}
>>> 'Thomas' in d
False
>>> 'Bob' in d
True
>>> dict1={'Name':'Zara','Age':9,'Class':'First'}
>>> len(dict1)
3
这里相当于java将一个map转化为json字符串
>>> dict1={'Name':'Zara','Age':9,'Class':'First'}
>>> str(dict1)
"{'Age': 9, 'Name': 'Zara', 'Class': 'First'}"
在这里输入是个字典,so
>>> dict1={'Name':'Zara','Age':9,'Class':'First'}
>>> type(dict1)
<type 'dict'>
输出一个list格式(非真正意义上的list)
>>> dict1={'Name':'Zara','Age':9,'Class':'First'}
>>> print(dict1.items())
[('Age', 9), ('Name', 'Zara'), ('Class', 'First')]
>>> print(list(dict1.items()))
[('Age', 9), ('Name', 'Zara'), ('Class', 'First')]
和list比较,dict有以下几个特点:
而list相反:
https://www.cnblogs.com/liuchunxiao83/p/5362541.html
http://www.runoob.com/manual/pythontutorial/docs/html/datastructures.html#tut-sets
https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/00143167793538255adf33371774853a0ef943280573f4d000