美文网首页Python之佳
python不可变集合

python不可变集合

作者: 派派森森 | 来源:发表于2019-01-14 14:02 被阅读0次

对应于元组(tuple)与列表(list)的关系,对于集合(set),Python提供了一种叫做不可变集合(frozen set)的数据结构。

使用 frozenset 来进行创建:

s = frozenset([1, 2, 3, 'a', 1])
s
frozenset({1, 2, 3, 'a'})

与集合不同的是,不可变集合一旦创建就不可以改变。

不可变集合的一个主要应用是用来作为字典的键,例如用一个字典来记录两个城市之间的距离:

flight_distance = {}
city_pair = frozenset(['Los Angeles', 'New York'])
flight_distance[city_pair] = 2498
flight_distance[frozenset(['Austin', 'Los Angeles'])] = 1233
flight_distance[frozenset(['Austin', 'New York'])] = 1515
flight_distance
{frozenset({'Austin', 'New York'}): 1515,
 frozenset({'Austin', 'Los Angeles'}): 1233,
 frozenset({'Los Angeles', 'New York'}): 2498}

由于集合不分顺序,所以不同顺序不会影响查阅结果:

flight_distance[frozenset(['New York','Austin'])]
1515
flight_distance[frozenset(['Austin','New York'])]
1515

相关文章

  • Python可变类型与不可变类型

    Python可变类型与不可变类型 1、可变类型:List(列表),Dic(字典),Set(集合) 2、不可变类型:...

  • 列表

    Python中的数据类型:数字(不可变)、字符串(不可变)、列表(可变)、元祖(不可变)、字典(可变)、集合 容器...

  • 2018年6月19日【python学习笔记】

    列表 python中的数据类型:数字(不可变)、字符串(不可变)、列表(可变)、元祖(不可变)、字典(可变)、集合...

  • Python 集合set()添加删除、交集、并集、集合操作详解

    1、在Python中set是基本数据类型的一种集合类型,它有可变集合(set())和不可变集合(frozenset...

  • python的集合

    集合,存放不可变类型,无序,不可重复 可变类型报错 #! /usr/bin/env python # -*- co...

  • Python中的list和tuple

    list和tuple是Python内置的有序集合,一个可变,一个不可变。列表list可变,元组tuple不可变(指...

  • python集合面试笔试题

    1 哪些关于Python的set类型的描述是正确的: A. 集合可能包含可变元素。 B. 集合是可变的。 C. 集...

  • Chapter 24《Collections in Depth》

    可变和不可变集合 Scala中的集合可分为可变集合和不可变集合。可变集合可以当场被更新,不可变集合本身是不可变的。...

  • Python都有哪些数据结构?

    Python自带的数据结构分为可变的和不可变的。可变的有:数组、集合、字典;不可变的有:字符串、元组、数。

  • Python学习笔记四:集合、字典和运算符

    一、集合   在 Python 中,集合由内置的 set 类型定义。  集合的特性:无序,元素唯一 ,可变。属于散...

网友评论

    本文标题:python不可变集合

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