dict的作用是建立一组 key 和一组 value 的映射关系,dict的key是不能重复的。

有的时候,我们只想要 dict 的 key,不关心 key 对应的 value,目的就是保证这个集合的元素不会重复,这时,set就派上用场了。

set 持有一系列元素,这一点和 list 很像,但是set的元素没有重复,而且是无序的,这点和 dict 的 key很像。

创建 set 的方式是调用 set() 并传入一个 list,list的元素将作为set的元素:

>>> s = set(['A', 'B', 'C'])

可以查看 set 的内容:

>>> print s
set(['A', 'C', 'B'])

请注意,上述打印的形式类似 list, 但它不是 list,仔细看还可以发现,打印的顺序和原始 list 的顺序有可能是不同的,因为set内部存储的元素是无序的。

因为set不能包含重复的元素,所以,当我们传入包含重复元素的 list 会怎么样呢?

>>> s = set(['A', 'B', 'C', 'C'])
>>> print s
set(['A', 'C', 'B'])
>>> len(s)
3

结果显示,set会自动去掉重复的元素,原来的list有4个元素,但set只有3个元素。

由于set存储的是无序集合,所以我们没法通过索引来访问。

访问 set中的某个元素实际上就是判断一个元素是否在set中。

例如,存储了班里同学名字的set:

>>> s = set(['Adam', 'Lisa', 'Bart', 'Paul'])

我们可以用 in 操作符判断:

Bart是该班的同学吗?

>>> 'Bart' in s
True

Bill是该班的同学吗?

>>> 'Bill' in s
False

bart是该班的同学吗?

>>> 'bart' in s
False

看来大小写很重要,'Bart' 和 'bart'被认为是两个不同的元素。

转载于:https://www.cnblogs.com/chengjian-physique/p/7868873.html

Python之访问set相关推荐

  1. OpenCV中图像以Mat类型保存时各通道数据在内存中的组织形式及python代码访问各通道数据的简要方式...

    OpenCV中图像以Mat类型保存时各通道数据在内存中的组织形式及python代码访问各通道数据的简要方式 以最简单的4 x 5三通道图像为例,其在内存中Mat类型的数据组织形式如下: 每一行的每一列 ...

  2. python中的文件父路径怎么表达_如何在Python中访问父目录

    所以我有一个朋友给我的Python脚本,但是我没有Python的经验.代码如下:from os import path, chdir, listdir, mkdir, getcwd from sys ...

  3. python 反复访问迭代器iter,反复使用next

    python  反复访问迭代器iter,反复使用next test = [1, 2, 3]# 定义迭代器 iter_test = iter(test)# 使用for循环访问迭代器 # 由于next() ...

  4. python中的文件父路径怎么表达_python中的文件父路径怎么表达_如何在Python中访问父目录...

    所以我有一个朋友给我的Python脚本,但是我没有Python的经验.代码如下:from os import path, chdir, listdir, mkdir, getcwd from sys ...

  5. [Spark][Python]Spark 访问 mysql , 生成 dataframe 的例子:

    [Spark][Python]Spark 访问 mysql , 生成 dataframe 的例子: mydf001=sqlContext.read.format("jdbc").o ...

  6. python连接mongo_使用简单的Python连接访问MongoDB

    继续来聊MongoDB. MongoDB作为了一个数据库产品软件,除了服务器Server端进程(mongod)外,还提供了比较丰富的访问连接接口.我们最常用的就是两个类型,一个是原生mongo she ...

  7. 几行代码理解Python变量访问的LEGB顺序

    Python变量访问时有个LEGB原则,也就是说,变量访问时搜索顺序为Local ==> Enclosing ==> Global ==> Builtin,听起来好像很高深的样子,实 ...

  8. spark to mysql date_[Spark][Python]Spark 访问 mysql , 生成 dataframe 的例子:

    [Spark][Python]Spark 访问 mysql , 生成 dataframe 的例子: mydf001=sqlContext.read.format("jdbc").o ...

  9. python模拟访问js_百度统计原理分析-利用PHP/Python实现模拟访问

    国内大多数站长可能都在用百度统计.统计的使用方法也很简单,只要在需要统计的页面底部加上统计代码即可.然后打开百度统计的后台,就能看到访客信息,包括入口页面,停留时间,跳出率等等,很是方便. 使用当然是 ...

  10. **python练习访问*

    python练习访问 用的别人的代码,开始学习改进 未完待续 import re import requests from requests import RequestException impor ...

最新文章

  1. linux ip add address,linux – ip地址范围参数
  2. saxon java_如何将Saxon设置为Java中的Xslt处理器?
  3. 怎么导入字体ttf_教程小字体制作精品教程(简化版)丨精致小字体
  4. SharePoint Timer Job
  5. .Net Core应用框架Util介绍(三)
  6. POJ 2976 Dropping Tests
  7. NAT(NAPT)地址转换过程
  8. laravel php环境,Laravel 5框架学习之环境与配置
  9. excel 区间人数柱状图_原来用Excel做数据分析如此简单!
  10. 信么?PrintDemon 漏洞影响自1996年起发布的所有 Windows 版本
  11. c语言谢延红主编答案,C语言程序设计课程改革与实践.doc
  12. java tmp 目录_Tmp目录丢失引发Java进程异常
  13. 硬核教程 - 使用Rust编写网游FPS外挂辅助
  14. C和C++的二进制,八进制,十六进制输出格式(全面版)
  15. 多个excel表格数据汇总如何完成
  16. android系统可以识别NTFS格式吗,安卓手机支持ntfs格式的储存卡吗
  17. 团队口号_激励口号_口号大全分享到:
  18. 如何使用openCV和立创eda绘制一个有形状带图案的专属pcb
  19. orb-slam系列 LoopClosing线程 DetectLoop(十)
  20. Android Selinux avc报错分析

热门文章

  1. 『ExtJS』表单(一)常用表单控件及内置验证
  2. 数学与算法《文档相似性 - 余弦定理》
  3. 漫步微积分二十四——定积分引言
  4. Python中RowIOBase详解
  5. ipv4地址是几位二进制数_知识点| ip地址详解,小学生都看的懂
  6. pytorch ——模型创建与nn.Module
  7. 计算机桌面文件夹排序,电脑桌面文件整理前后对照
  8. Java 8 函数式编程学习笔记
  9. UML部署图和构件图
  10. 第46屆ICPC 東亞洲區域賽(澳門)(正式賽)Link-Cut Tree