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

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

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之list(set())函数_python的list函数

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

简单学Python——内置函数24——set()函数

set()函数是Python的内置函数,用来创建集合数据(集合是一种无序且不含重复元素的数据结构)。set()函数的参数为一个可迭代对象(列表、字符串等)1、创建非空集合。用已有列表创建集合:set(...

Poerty - 更好的Python依赖管理库

还在使用 pip 和 setuptools 来进行Python的依赖管理吗?那你就已经落伍了。来看看 Poetry吧,这个依赖管理库为Python带来了全新的体验。简介Poetry,是 python-...

Python基础知识之集合(set)中交集、并集、差集运算

集合中最常见的操作就是并集、交集和差集,为了更好地学习这些知识和编程实现方式。我们从并集、交集和差集各运算的含义开始讲解。并集:取两集合全部的元素。交集:取两集合公共的元素。差集:取一个集合中另一集合...

python开发破译WiFi教程,你不看看吗?

一、安装python环境(1)首先安装在python 官网安装python环境(https://www.python.org/getit/)(2)选择Downloads--Windows点开,如图所示...

Python 多线程之 Redis 分布式锁_使用redis实现分布式锁及其优化

前言在很多互联网产品应用中,有些场景需要加锁处理,例如:双11秒杀,全局递增ID,楼层生成等等。大部分的解决方案是基于 DB 实现的,Redis 为单进程单线程模式,采用队列模式将并发访问变成串行访问...