美文网首页
python中的dict和set

python中的dict和set

作者: 舒小贱 | 来源:发表于2017-12-15 16:39 被阅读0次
一:字典dict

python中的dict和golang中map的概念是一致的,称为“字典”。

d = {'minping':99, 'shuxin':98}
print(d)
print(d["minping"]) 
print(d["minping11"]) 直接报错:KeyError: 'minping1'
print(d.get("minping1"))
d.pop("minping")
print(d)

dict可以用在需要高速查找的很多地方,在Python代码中几乎无处不在,正确使用dict非常重要,需要牢记的第一条就是dict的key必须是不可变对象

这是因为dict根据key来计算value的存储位置,如果每次计算相同的key得出的结果不同,那dict内部就完全混乱了。这个通过key计算位置的算法称为哈希算法(Hash)。

要保证hash的正确性,作为key的对象就不能变。在Python中,字符串、整数等都是不可变的,因此,可以放心地作为key。而list是可变的,就不能作为key

>>> key = [1, 2, 3]
>>> d[key] = 'a list'
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'list'
二:集合set

set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key(如果在初始化或者add过程中有的话,也会剔除掉重复的元素)
要创建一个set,需要提供一个list作为输入集合:

s = set([1,1,1,2,3,2])
print(s)
s.add(4)
s.add(-1)
print(s)
s.remove(3)
print(s)
s.remove(-2)
print(s)

运行结果:

E:\python_study>python 1.py
set([1, 2, 3])
set([1, 2, 3, 4, -1])
set([1, 2, 4, -1])
Traceback (most recent call last):
  File "1.py", line 115, in <module>
    s.remove(-2)
KeyError: -2

从上可见,set有add和remove操作来增加删除元素,但是删除时如果key不存在,则直接报错。
从这里面来看,set好像也没有什么特点,那没为什么把set写在这篇文章里?如果你这样看待set那就大错特错了,set的功能远不止这些:set是作为set可以看成数学意义上的无序和无重复元素的集合,因此,两个set可以做数学意义上的交集、并集等操作

s1 = set([1,2,3])
s2 = set([2,3,4])

print(s1 & s2) #交集
print(s1 | s2) #并集
print(s1 - s2) #差集

运行结果:

E:\python_study>python 1.py
set([2, 3])
set([1, 2, 3, 4])
set([1])

所以说用pyhton的set进行一些小计算是不是很方便!

相关文章

  • dict(key与value)和set(key)

    dict和set dict (字典的使用) Python 内置了字典:dict的支持,dict全程dictiona...

  • 刷穿剑指offer-Day16-哈希表III 哈希表的总结与题型

    昨日回顾 昨天,我们针对Java中的 HashMap 、HashSet ,和Python中的 dict & set...

  • python中的dict和set

    一:字典dict python中的dict和golang中map的概念是一致的,称为“字典”。 dict可以用在需...

  • [python]dict和set

    一、dict使用键-值(key-value)存储,特点:无序、key是唯一且不可变的、查询速度快 可以通过len(...

  • Python进阶5

    深入Python的set和dict dict常用操作 引言 clear(): 清空字典 copy(): 返回一个浅...

  • 【Python】07. dict 和 set

    使用 dict 和 set dict Python内置支持,全称 dictionary,在其它语言中也被称为 ma...

  • python的dict 和set

    一、dictdict是python内置的字典,使用key-val存储,在其他语言中 也叫map,具有极快的查找速度...

  • Python入门第三课

    Python中什么是set dict的作用是建立一组key和一组value的映射关系,dict的key是不能重复的...

  • [Python学习路线]--Python基础no.07

    上一节学习了Python中更高级的数据结构:list, tuple, dict, set。以及它们在python中...

  • Python中Dict与Set

    1.dict的赋值、访问、更新、删除 dict是key-value形式的存储结构,value值通过key来赋值、访...

网友评论

      本文标题:python中的dict和set

      本文链接:https://www.haomeiwen.com/subject/nirdwxtx.html