一. 集合

1.什么是集合(set)

"""
集合是容器类型数据,将{}作为容器的标志,里面多个元素用逗号隔开:{元素1, 元素2, 元素3, ...}
可变的;无序的
元素:不可变数据;唯一的
"""

1)空集合

x = {}   # 空字典
s1 = set()   # 空集合
print(type(x), type(s1))   # <class 'dict'> <class 'set'>

2)元素是不可变的

s2 = {10, 'abc', (10, 20)}
print(s2)   # {(10, 20), 10, 'abc'}# 报错,列表可变不能作为集合元素
# s3 = {10, 'abc', [10, 20]}   # TypeError: unhashable type: 'list'

3)元素是唯一的

s4 = {10, 20, 30, 10, 10}
print(s4)   # {10, 20, 30}
# 集合去重
names = ['张三', '李四', '老王', '李四', '张三', '张三']
names = list(set(names))
print(names)   # ['老王', '李四', '张三']nums = [2, 30, 4, 10, 10, 2, 50, 6, 30]
nums = list(set(nums))
print(nums)   # [2, 4, 6, 10, 50, 30]

4)集合是无序

print({1, 3, 5} == {5, 1, 3})   # True

2.集合的增删改查
1)查 - 集合只能遍历

# 补充:通过for循环遍历无序列表的时候,都是先将序列转换成列表,然后遍历列表
games = {'QQ炫舞', '扫雷', '我的世界', '贪吃蛇', '侠盗猎车', '红警'}
for i in games:print('i', i)

2)增
集合.add(元素) - 在集合中添加指定元素
集合.update(序列) - 将序列中所有的元素添加到集合中

games.add('英雄联盟')
print(games)   # {'红警', '扫雷', '我的世界', '侠盗猎车', 'QQ炫舞', '贪吃蛇', '英雄联盟'}games.update({'开心消消乐', '王者荣耀'})
print(games)   # {'我的世界', '侠盗猎车', '开心消消乐', '贪吃蛇', '红警', '英雄联盟', '王者荣耀', 'QQ炫舞', '扫雷'}games.update('abc')
print(games)   # {'a', '扫雷', '王者荣耀', '我的世界', '侠盗猎车', '红警', '开心消消乐', '贪吃蛇', 'QQ炫舞', 'b', 'c', '英雄联盟'}

3)删
集合.remove(元素) - 删除集合中指定的元素(元素不存在时会报错)

games = {'QQ炫舞', '扫雷', '我的世界', '贪吃蛇', '侠盗猎车', '红警'}
games.remove('贪吃蛇')
print(games)   # {'我的世界', '红警', '侠盗猎车', '扫雷', 'QQ炫舞'}

集合.discard(元素) - 删除集合中指定的元素(元素不存在时不会报错)

games.discard('我的世界')
print(games)   # {'扫雷', '侠盗猎车', 'QQ炫舞', '红警'}

4)改 - 先删除原来的,在添加新的

games = {'QQ炫舞', '扫雷', '我的世界', '贪吃蛇', '侠盗猎车', '红警'}
games.remove('扫雷')
games.add('部落冲突')
print(games)   # {'部落冲突', 'QQ炫舞', '贪吃蛇', '红警', '我的世界', '侠盗猎车'}

3.数学集合运算
python中的集合支持数学中的集合运算:&(交集)、|(并集)、-(差集)、^(对称差集)、>、<、>=、<=(判断包含关系)

set1 = {1, 2, 3, 4, 5, 6, 7}
set2 = {4, 5, 6, 7, 8, 9, 10}
# 1)集合1 & 集合2 - 求两个集合中公共的部分
print(set1 & set2)   # {4, 5, 6, 7}# 2)集合1 | 集合2 - 合并两个集合,产生一个新的集合
print(set1 | set2)   # {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}# 3)集合1 - 集合2 - 集合1中去掉包含在集合2中剩下的元素
print(set1 - set2)   # {1, 2, 3}
print(set2 - set1)   # {8, 9, 10}# 4)集合1 ^ 集合2 - 合并两个集合后去掉两个集合公共部分
print(set1 ^ set2)   # {1, 2, 3, 8, 9, 10}# 5)集合1 > 集合2 - 判断集合2是否时集合1的真子集
#    集合1 < 集合2 - 判断集合1是否时集合2的真子集
#    集合1 >= 集合2 - 判断集合2是否时集合1的子集
#    集合1 < 集合2 - 判断集合1是否时集合2的子集print({1, 2, 3, 4} > {1, 2})   # True
print({1, 2, 3, 4} >= {1, 2, 3, 4})   # True
# 练习:
#   用三个列表表示三门学科的选课学生姓名(一个学生可以同时选多门课)
#   a. 求选课学生总共有多少人
#   b. 求只选了第一个学科的人的数量和对应的名字
#   c. 求只选了一门学科的学生的数量和对应的名字
#   d. 求只选了两门学科的学生的数量和对应的名字
#   e. 求选了三门学生的学生的数量和对应的名字python = {'stu1', 'stu2', 'stu4', 'stu6', 'stu7', 'stu10', 'stu11'}
h5 = {'stu1', 'stu3', 'stu5', 'stu7', 'stu8', 'stu10'}
java = {'stu1', 'stu2', 'stu5', 'stu6', 'stu7', 'stu9', 'stu12'}# a. 求选课学生总共有多少人
all_stu = python | java | h5
print('总人数:', len(all_stu))# b. 求只选了第一个学科的人的数量和对应的名字
print('只选了第一个学科的人:', python - h5 - java)# c. 求只选了一门学科的学生的数量和对应的名字(可以直接用[三个集合求对称差集-三个集合的交集])
# 方法一:
print('只选了一门学科的人:', python - h5 - java, h5 - java - python, java - h5 - python)
# 方法二:
print('只选了一门学科的人:', (python ^ h5 ^ java) - (python & h5 & java))# d. 求只选了两门学科的学生的数量和对应的名字(或者用总人数减去选了一门的和选了三门学科的人)
print('只选了两门学科的人:', python & h5 - java, python & java - h5, h5 & java - python)# e. 求选了三门学科的学生的数量和对应的名字
print('选了三门学科的人:', python & h5 & java)

二. 字符串和字符

1.什么是字符串(str)

"""
字符串是容器型数据类型,将''或者""或者''''''或者""""""作为容器的标志里面的每一个基本符号就是字符串的元素
字符串是不可变的(不支持增删改);字符串是有序的(支持下标操作)
元素:引号里面的每个基本单元就是字符串的元素,又叫字符(python中只有字符概念,没有字符对应的类型,一般直接使用长度是1的字符串来表示字符)
"""

1)空串

s1 = ''
s2 = ""
s3 = ''''''
s4 = """"""
print(s1, s2, s3, s4)
print(type(s1), type(s2), type(s3), type(s4))   # <class 'str'> <class 'str'> <class 'str'> <class 'str'>

2)’’、""、’’’’’’、""""""的区别

# ''、"" - 字符串中不能直接换行
# ''''''、"""""" - 字符串中可以直接换行
s5 = 'aklsdjfklsajf-0sdkjf13='s6 = '''床前明月光,疑是地上霜。举头望明月,低头思故乡。
'''
print(s5)
print(s6)

3)字符串有序性

print('abc' == 'cba')   # False

2.字符

"""
字符分为普通字符和转义字符两种:
1)转义字符
在指定的一个或者多个符号前加 \ 让符号具有特殊功能或着特殊意义。那么这种带有 \ 字符就是转义字符:
\n  -  换行
\t  -  水平制表符(相当于按一下tab键)
\'  -  表示一个普通的单引号
\"  -  表示一个普通的双引号
\\  -  表示一个普通的反斜杠注意:任意一个转义字符的长度都是1
2)普通字符
除了转义字符以外的字符都是普通字符,普通字符在字符串中表示这个字符串本身,包括:汉字、字母、字母、符号
、表情符号....
'sdf'、'是的'、'%....&340)'、'												

小白学习Python的第七天之集合和字符串相关推荐

  1. python语言自学-零基础小白学习Python编程语言的正确姿势(纯干货)

    原标题:零基础小白学习Python编程语言的正确姿势(纯干货) 敢问有哪种编程语言集简洁.优雅.简单.全能于一身?Python绝对算的上是一个.举个例子,比如完成同一个任务,C语言需要写1000行代码 ...

  2. python多久能上手_小白学习Python,怎样能够快速入门上手

    原标题:小白学习Python,怎样能够快速入门上手 时至今日,Python已经成为最受欢迎的编程语言之一,清晰易读,适用广泛.在TIOBE 排行榜中位居第四,成为名副其实的人工智能第一语言. 那么零基 ...

  3. 小白学python买什么书-终于明白小白学习python怎么学

    Python作为一门新型的编程语言(一般常用作脚本语言)很受欢迎,毕竟相对其他的编程语言(Java ,C#等)来说比较容易入手.那么,在刚开始学习Python时有哪些疑难点需要掌握呢?以下是小编为你整 ...

  4. python中小学生编程学习-推荐几个适合小白学习Python的免费网站

    9gd少儿编程网-Scratch_Python_教程_免费儿童编程学习平台 想要学好python,只靠看Python相关的书籍是远远不够的!互联网时代,我们还要充分利用网络上的免费资源,不然怎样成为一 ...

  5. python自学网站免费-推荐几个适合小白学习Python的免费网站

    9gd少儿编程网-Scratch_Python_教程_免费儿童编程学习平台 想要学好python,只靠看Python相关的书籍是远远不够的!互联网时代,我们还要充分利用网络上的免费资源,不然怎样成为一 ...

  6. 0035【Python】小白学习Python大纲

    后续业余时间慢慢补充学习详细内容. Python介绍 Python是一种解释型语言,面向对象语言 Python的解释器分类: CPython(官方):用c语言编写的Python解释器 pypy:pyt ...

  7. python课程设计总结1000-编程小白学习python总结文章(一)

    写在开头UP猪自己本人是工科学生,如今大四,在oppo实习中,然后最近发现以及结合自己在工作中了解到的,得到了一个消息"玩硬件的永远没有玩软件编程的有钱途",再加上发现现在有些招聘 ...

  8. 笨办法学习python应该看第几版_求问:完全小白学习Python看《笨方法学Python3》还是看《Python编程从入门到实践》?...

    完全小白,建议看 <Python编程从入门到实践> 或 <像计算机科学家一样思考Python 第2版> 本书以培养读者以计算机科学家一样的思维方式来理解Python语言编程.贯 ...

  9. 小白学习python好还是java好_小白应该学Python还是Java?

    Java和Python两门语言都是目前非常热门的语言,可谓北乔峰南慕容,二者不分上下,棋逢对手.但是对于初学者来说,非常困惑,因为时间和精力有限,上手必须要先学一门,到底选那个好呢,今天3分钟带你透彻 ...

最新文章

  1. 小猿圈Python之实现京东秒杀功能代码
  2. 根据IP查找在交换机上的端口
  3. mysql多数据源切换_Springboot项目实现Mysql多数据源切换的完整实例
  4. TP5 实现转盘抽奖
  5. Python的第二种数据类型——String(字符串)
  6. MySQL 处理海量数据时的一些优化查询速度方法
  7. 第1章-导言-习题1.13-1.17
  8. 查看mysql的版本的四种方法
  9. Java学习小程序(9)冒泡排序算法实现
  10. mysql5.6.22编译安装教程_Linux CentOS6.0下编译安装MySQL 5.6.22
  11. Android学习笔记---22_访问通信录中的联系人和添加联系人,使用事物添加联系人...
  12. mysql把两个查询的结果合并为一个结果
  13. android 按钮换行_自定义Android自动换行的布局
  14. oracle 批量插入 mysql 区别,Mysql与Oracle中批量插入和更新区别
  15. 一款黑科技神器:uTools
  16. 前端表白Html+css+js,表白源码,520和七夕告白,雪花爱心记录
  17. IDEA Tomcat 无法加载mysql驱动
  18. 2023年整理:吉利车机安装安装第三方软件教程,笔记本或手机操作方法!
  19. 网站内嵌编辑器ace
  20. 计算机视觉(视频追踪检测分类、监控追踪)常用测试数据集

热门文章

  1. 狙击P7!阿里大佬亲授“Java性能调优技术宝典”,太完整了!
  2. ArcGIS教程:Zonal相关的工作原理及实例
  3. python 绘制3D散点图
  4. udp文件服务器,udp服务器 是发文件吗
  5. IBM、dell、hp、lenovo服务器故障报修、技术支持、服务器保修时间查询地址、电话...
  6. C语言 游戏人物的移动与技能释放(图形化编程)
  7. 上网行为管理软件使用了哪些技术?
  8. Oracle服务端配置IP,修改主机和服务器的 IPv6 接口配置
  9. H5C3部分面试题汇总
  10. 京东左侧导航栏的制作