大家好天给大家引入一个新的数据结构,字典,在 python中字典是一个非常重要的数据结构。python在有些地方被称为哈希或者关系数组。

1、创建字典

字典包括键和值。键是独一无二的。但是值则不必。

1-1 字典的格式:
dict={
‘key1’:’value1’,
‘key1’:’value1’,
‘key1’:’value1’,
‘key1’:’value1’,
.
.
.
.
.

}

字典的值支持不同类型的键和值大家可以根据实际情况进行创建。

1-2 声明一个字典:
dict={}
这里是一个空字典
dict[1]=1,
dict[2]=2
dict[3]=3
这里是给字典赋值。但是字典不允许同一个键被赋值两次,否则后一个值会被记住。

2 字典的各种内置方法

1) fromkeys(seq[,value])
fromkeys()方法用于创建并返回一个新的字典,他有两个参数,第一个是字典的键,第二个是传入的值,如果不提供默认为None。
dict={}
>>> dict.fromkeys((1,2,3,4))
{1: None, 2: None, 3: None, 4: None}
>>> dict.fromkeys((1,2,3,4),”111”)
{1: ‘111’, 2: ‘111’, 3: ‘111’, 4: ‘111’}

2) items(),values(),keys()
items()返回字典中所有的键值对。
>>> dict.items()
dict_items([(1, ‘111’), (2, ‘222’), (3, ‘333’)])
values()返回字典中所有的值
>>> dict.values()
dict_values([‘111’, ‘222’, ‘333’])

keys()返回字典中所有的键
    >>> dict.keys()
    dict_keys([1, 2, 3])

3)get(key[,default])
get()方法根据传入的keys返回字典的值。但是键不存在时,会默认返回一个none。
>>> dict
{1: ‘111’, 2: ‘222’, 3: ‘333’}
>>> dict.get(1)
‘111’
>>> dict.get(4)
除此之外,可以通过in 或者not in判断字典中是否存在此键值对。
>>> 4 in dict
False
>>> 4 not in dict
True
>>>
清空字典调用clear()方法。
>>> dict.clear()
>>> dict
{}
4 copy()
用于拷贝整个字典。
>>> dict={1:’111’,2:’222’,3:’333’}
>>> dict_copy=dict.copy()
>>> dict_copy
{1: ‘111’, 2: ‘222’, 3: ‘333’}

5 pop(key)和popitem()

pop(key)是根据键进行删除键值对。
>>> dict
{1: ‘111’, 2: ‘222’, 3: ‘333’}
>>> dict.pop(2)
‘222’
>>> dict
{1: ‘111’, 3: ‘333’}
>>>

popitem()默认从最后一个键值对进行开始删除。
>>> dict
{1: ‘111’, 2: ‘222’, 3: ‘333’, 4: ‘444’, 5: ‘555’, 6: ‘666’}
>>> dict.popitem()
(6, ‘666’)
>>> dict.popitem()
(5, ‘555’)
>>> dict.popitem()
(4, ‘444’)
>>> dict
{1: ‘111’, 2: ‘222’, 3: ‘333’}
>>>

6) setdefault(key)

这个方法和get()方法相似都可以根据key返回值,但是setdefault(key)假如找不到键会自动添加
>>> dict
{1: ‘111’, 3: ‘333’}
>>> dict.setdefault(2)
>>> dict
{1: ‘111’, 3: ‘333’, 2: None}
>>>
7) update([other])

用来更新字典。
    >>> pets={}
    >>> pets['米奇']='老鼠'
    >>> pets['Tom']='猫'
    >>> pets['小白']='猪'
    >>> pets
    {'米奇': '老鼠', 'Tom': '猫', '小白': '猪'}
    >>> pets.update(小白='狗')
    >>> pets
    {'米奇': '老鼠', 'Tom': '猫', '小白': '狗'}
    >>> 
评 论