python之集合(set)学习
集合(set)
集合是一个无序的不重复元素序列,使用大括号({})、set()函数创建集合,
注意:创建一个空集合必须用set()而不是{},因为{}是用来创建一个空字典。
集合是无序的、不重复的、没有索引的
 a = {'hello','ni','hao','hi','ni','hao'}
 print(a)     # 输出结果没有重复项,且无序
 # print(a[1])   # TypeError: 'set' object does not support indexing
输出结果:
{'ni', 'hao', 'hello', 'hi'}
添加集合元素
添加单个元素:
 a = {'hello','ni','hao','hi','ni','hao'}
 print(a) 
 a.add('wo')
 print(a)
 a.add('hi')     # 如果元素已存在,则不进行任何操作。
 print(a)     
输出结果:
{'hi', 'ni', 'hao', 'hello'}
{'hello', 'hi', 'wo', 'ni', 'hao'}
{'hello', 'hi', 'wo', 'ni', 'hao'}
添加多个元素、列表元素、字典元素
 a = {'hello','ni','hao','hi','ni','hao'}
 print(a)
 a.update("me", 'da')
 print(a)
 a.update({'user': 'name', 'pwd': 'mima'})
 print(a)
 print(len(a))
 a.update([1, 2, 3, 4])
 print(a)
 a.update(['abc', 'word', 'x'])
 print(a)
输出结果:
{'hi', 'hao', 'hello', 'ni'}
{'hello', 'hao', 'e', 'ni', 'hi', 'd', 'a', 'm'}
{'hello', 'hao', 'e', 'ni', 'hi', 'user', 'pwd', 'd', 'a', 'm'}
{1, 2, 3, 4, 'hello', 'hao', 'e', 'ni', 'hi', 'user', 'pwd', 'd', 'a', 'm'}
{1, 2, 3, 4, 'hello', 'abc', 'hao', 'e', 'ni', 'hi', 'user', 'pwd', 'd', 'word', 'a', 'm', 'x'}
输出结果有些出人意料,使用add添加单个元素时,不管该元素时单个字符还是字符串,都作为一个元素添加,而使用update则将字符串元素拆开为单个字符添加。
而且添加的元素为字典时,可以发现,key值是按照字符串添加的,而value值也是拆开为单个字符添加。
添加的元素为列表时,是将列表元素拆开,作为一个个单独的元素添加进集合,即使列表元素中有字符串,但是不在拆分该字符串。
删除集合元素
删除集合元素有三种方法:set.remove()、set.discard()、set.pop()
 a = {'hello','ni','hao','hi','ni','hao'}
 a.remove('hao')
 print(a)
 # a.remove('nihao')   # 如果元素不存在,会发生错误
 # print(a)
 a.discard('nihao')  # 如果元素不存在,不会发生错误
 print(a)
 a.pop()     # 随机删除集合中的一个元素,在交互模式中,删除集合中的第一个元素(排序后的第一个元素)
 print(a)
输出结果:
{'ni', 'hi', 'hello'}
{'ni', 'hi', 'hello'}
{'hi', 'hello'}
清空集合元素:
 a = {'hello','ni','hao','hi','ni','hao'}
 a.clear()
 print(a)
输出结果:
set()
遍历集合
因为集合是无序的,所以不能使用索引,那么只能使用for循环来遍历。
 a = {'hello','ni','hao','hi','ni','hao'}
 for x in a:
     print(x)
输出结果:
hao
ni
hi
hello
学到这里,Python的基本数据类型已经简单的介绍完了,但是肯定不是这么点,还有更深更细节的知识就不是现阶段应该学的,那需要以后慢慢积累,多加练习才能掌握的。
而且可以发现for循环好像十分强大,什么地方都可以使用for循环,那么为什么for循环这么强大呢?后面的文章将会谈到。
python之集合(set)学习的更多相关文章
- 第四百一十五节,python常用排序算法学习
		
第四百一十五节,python常用排序算法学习 常用排序 名称 复杂度 说明 备注 冒泡排序Bubble Sort O(N*N) 将待排序的元素看作是竖着排列的“气泡”,较小的元素比较轻,从而要往上浮 ...
 - python之集合【set】
		
初学python,今天晚上学习了set,做下set的总结,set的中文名也就是[集合],set的总结分为两部分,第一部分是set的创建,第二部分是set的操作,也就是set的功能:set的特点是无序的 ...
 - python全栈开发学习_内容目录及链接
		
python全栈开发学习_day1_计算机五大组成部分及操作系统 python全栈开发学习_day2_语言种类及变量 python全栈开发_day3_数据类型,输入输出及运算符 python全栈开发_ ...
 - selenium + python自动化测试unittest框架学习(二)
		
1.unittest单元测试框架文件结构 unittest是python单元测试框架之一,unittest测试框架的主要文件结构: File >report >all_case.py &g ...
 - Python学习---Python下[元组]的学习
		
元组是不可变的, 用小括号()定义,而且一旦定义 ,不可变[类型是tuple] [元组看做一个整体,不可拆分,不可赋值,但可以全部重新赋值] 通过圆括号,用逗号分隔,常用在使语句或用户定义的函数能够安 ...
 - 孤荷凌寒自学python第六十二天学习mongoDB的基本操作并进行简单封装1
		
孤荷凌寒自学python第六十二天学习mongoDB的基本操作并进行简单封装1 (完整学习过程屏幕记录视频地址在文末) 今天是学习mongoDB数据库的第八天. 今天开始学习mongoDB的简单操作, ...
 - Github标星过万,Python新手100天学习计划。
		
大数据文摘编辑部出品 作为目前最火也是最实用的编程语言,Python不仅是新手入门程序界的首选,也逐渐成为了从大厂到小厂,招牌需求list的必要一条. 当然,学Python这件事情,你可能也和文摘菌一 ...
 - 大牛整理最全Python零基础入门学习资料
		
大牛整理最全Python零基础入门学习资料 发布时间:『 2017-11-12 11:56 』 帖子类别:『人工智能』 阅读次数:3504 (本文『大牛整理最全Python零基础入门学习资料 ...
 - Github标星过万,Python新手100天学习计划,这次再学不会算我输!
		
作为目前最火也是最实用的编程语言,Python不仅是新手入门程序界的首选,也逐渐成为了从大厂到小厂,招牌需求list的必要一条. 当然,学Python这件事情,你可能也和文摘菌一样,已经下了一百次 ...
 - Python框架之Django学习
		
当前标签: Django Python框架之Django学习笔记(十四) 尛鱼 2014-10-12 13:55 阅读:173 评论:0 Python框架之Django学习笔记(十三) 尛 ...
 
随机推荐
- Isight 命令行运行任务
			
说明书参考:https://abaqus-docs.mit.edu/2017/English/DSSIMULIA_Established.htm 不一定对版本.但是大部分还可以. 不对的可以在命令里敲 ...
 - 五、Pyqt5事件、信号和槽
			
PyQt中提供了两种针对事件处理的机制:一种是事件,另一种则是信号和槽. 一.事件 事件处理在PyQt中是比较底层的,常用的事件有键盘事件.鼠标事件.拖放事件.滚轮事件.定时事件.焦点事件.进入和离开 ...
 - layer.tips属性
			
layer.tips(新加的内容,'选择节点',{time: 0, area: ['20%', '20%'], skin: 'layui-layer-rim', tips: [3, '#ffffff' ...
 - appium sendkeys 输入数字丢失问题
			
参考:https://blog.csdn.net/rainshine1190/article/details/82814503
 - suse 11 pip pip3使用过程中遇到的各种问题
			
在安装完成python3.6后,使用pip3安装某些插件,报如下错误 linux-9qk9:~ # pip3 install ipython pip is configured with locati ...
 - tomcat配置层了解一下 idea打包 java打包部署
			
Tomcat的所有配置都放在conf文件夹之中,里面的server.xml文件是配置的核心文件. 如果想修改Tomcat服务器的启动端口,则可以在server.xml配置文件中的Connector节点 ...
 - 前台js接收后台的json数据
			
后台返回的json数据,如php的: return json_encode($data); 在前台 js接收如下: function json2object(str){ var jsstr = str ...
 - OpenCV3.30 画图函数
			
画图函数(Draw Functions)都放在imgpro. 例如C++中用: #include <opencv2\imgproc.hpp>
 - 打造自己Django博客日记
			
本教程使用的开发环境 本教程写作时开发环境的系统平台为 Windows 10 (64 位),Python 版本为 3.5.2 (64 位),Django 版本为 1.10.6. 建议尽可能地与教程的开 ...
 - Ubuntu 离线安装 docker
			
1.下载离线包,网址:https://download.docker.com/linux/ubuntu/dists/xenial/pool/stable/amd64/ 离线安装docker需要下载3个 ...