Python里的set和dict,如何选择用哪一个?

liftword4个月前 (02-26)技术文章27

set和dict的共同特点就是无序。

set存储的元素是唯一的,如果重复就会自动去除。

>>> aset={1,2,3,3}

>>> print(aset)

{1, 2, 3}

dict的key必须是唯一的,但value是可以重复的。因此常常用来统计个数,比如文章里出现的单词数量。

>>> adict = {"love":4, "python":4, "appli":1}

set 适合用来计算两个集合的交集与并集。

>>> run_lovers = {"tom","jerry","appli"}

>>> swim_lovers = {"jim","scot","appli"}

>>> lovers = run_lovers | swim_lovers

>>> print(lovers) # 喜欢跑步或游泳的人

{'jim', 'appli', 'scot', 'tom', 'jerry'}

>>> both_lovers = run_lovers & swim_lovers

>>> print(both_lovers) #既喜欢跑步又喜欢游泳的人

{'appli'}

因为str,list和tuple都是有序的,索引只能用整数作为索引。

dict不仅可以用数字,也可以用字符串做索引。实际上immutable(比如基本类型)都可以作为索引。

>>> adict = {3:3, 3.0:3, "abc":3, b"abc":3, True:3}

>>> adict[3],adict[3.0],adict["abc"]

(3, 3, 3)

>>> adict[b"abc"],adict[True]

(3, 3)

因此,dict 适用于从索引(key)到值(value)的映射的情况,和json是好兄弟。

相关文章

三分钟掌握Python 中最常用的 10 种 Set 方法

Python 中的集合至关重要,也是 Python 中最常用的内置数据类型之一。集合具有一些主要属性。集合中的元素必须是唯一的。套装中不允许有重复项。它们是无序的设置项目不可更改,但您可以删除和添加新...

Python集合类型Set详细总结_python里面集合

(一)Python集合数据类型Set总结-1 1、set特点set 可以过滤重复元素,本身是无序的(元素顺序是混乱的)不重复的示例-1:set = {1,2,2,3,4,4,5,6,7,7}#输出se...

Python基础篇(三)dict和set类型_python dicts

dict一、dict的定义dict即字典,相当于golang中的map类型,key-value型.具有极快的查找速度.由于dict中key的值是唯一的,因此如果多次赋值,最终结果为最后一次的赋值.二、...

python之list(set())函数_python的list函数

list(set())函数:对原列表去重并按从小到大排序list(set(a))方法set(a)将列表a转换为集合,集合是一个包含不重复元素的无序序列,然后再使用list将集合转换为列表。若要实现不改...

容易忽略的数据类型:集合(set)_集合set方法

python中数据类型定义明确: 1、字符串 2、布尔类型 3、整数 4、浮点数 5、数字 6、列表 7、元组 8、字典 9、日期这些是我们经常用到的,有一个数据类型:集合,一个很有用的类型,同时也最...