有关字典的知识点

2019-06-17  本文已影响0人  葡萄柚子茶

整型(integer)、字符串(string)和元组(tuple)都是immutable,而列表(list)、字典(dictionary)、集合(set)都是mutable
哈希表是在一个关键字和一个较大的数据之间建立映射的表,能使对一个数据序列的访问过程更加迅速有效。用作查询的关键字必须唯一且固定不变,于是只有immutable的对象才可以作为关键字,也叫hashable.
如上所述,整型(integer)、字符串(string)和元组(tuple)都可以作为关键字,而list不可以。
为什么 list 是不可哈希的,而 tuple 是可哈希的
(1)因为 list 是可变的在它的生命期内,你可以在任意时间改变其内的元素值。

(2)所谓元素可不可哈希,意味着是否使用 hash 进行索引

(3)list 不使用 hash 进行元素的索引,自然它对存储的元素有可哈希的要求;而 set 使用 hash 值进行索引。

字典的基础应用
字典中存储的数据是没有顺序的

1.取值

(1)根据key来取值
dict_1['key'] = value
(2)get(key, default)
获取字典中对应的key值,如果key不存在,则取默认值,key存在就取key对应的值

2.添加数据

dict_1['key'] = value
如果key不存在,则添加数据,如果key存在,修改key对应的值

3.删除数据

(1)del dict_1['key']
(2)删除所有元素
dict_1.clear()
(3)dict_1.pop(key)
删除字典给定键key所对应的值,返回值为被删除的值
(4)dict_1.popitem()
随机返回并删除字典中的一对键和值

site= {'name': '我的博客地址', 'alexa': 10000, 'url':'http://blog.csdn.net/uuihoo/'}
pop_obj=site.popitem() # 随机返回并删除一个键值对
print pop_obj   # 输出结果可能是{'url','http://blog.csdn.net/uuihoo/'}

4.获取字典中所有的key

keys = dict_1.keys()

5.获取字典中所有的value

values = dict_1.values()

6.获取字典中所有的键值对

items = dict_1.items()

7.判断字典中是否拥有某个key

if 'phone' in dict_1.keys():
  print('有这个key')

8.update实例

D = {'one': 1, 'two': 2}
 
D.update({'three': 3, 'four': 4})  # 传一个字典
print(D)
{'one': 1, 'three': 3, 'two': 2, 'four': 4}

D.update(five=5, six=6)  # 传关键字
print(D)
{'one': 1, 'four': 4, 'six': 6, 'two': 2, 'five': 5, 'three': 3} 

D.update([('seven', 7), ('eight', 8)])  # 传一个包含一个或多个元祖的列表
print(D)
{'one': 1, 'eight': 8, 'seven': 7, 'four': 4, 'six': 6, 'two': 2, 'five': 5, 'three': 3} 

D.update(zip(['eleven', 'twelve'], [11, 12]))  # 传一个zip()函数
print(D)
{'one': 1, 'eight': 8, 'seven': 7, 'four': 4, 'eleven': 11, 'six': 6, 'twelve': 12, 'two': 2, 'five': 5, 'three': 3}
 
D.update(one=111, two=222)  # 使用以上任意方法修改存在的键对应的值
print(D)
{'four': 4, 'seven': 7, 'twelve': 12, 'six': 6, 'eleven': 11, 'three': 3, 'one': 111, 'eight': 8, 'two': 222, 'five': 5}
上一篇 下一篇

猜你喜欢

热点阅读