当前位置: 首页 > news >正文

python初学-元组、集合

元组:
元组基本和列表一样,区别是 元组的值一旦创建 就不能改变了
tup1=(1,2,3,4,5)
print(tup1[2])
-------------------------------------
元组中只包含一个元素时,需要在元素后面添加逗号
 
不加逗号:tup1=(10)
print(type(tup1))
<class 'int'>
 
加逗号:tup1=(10,)
print(type(tup1))
<class 'tuple'>
-----------------------------------------
元组中的元素值是不允许修改的,但我们可以对元组进行连接组合
url=('192.168.85.130','lzc','root',123456)
addr=('abc','def','hijk','nmn')
tup3=url+addr
print(tup3)
------------------------------------------
一个可变的元组
tup=('a','b',['A','B'])
print(tup[2][1])
tup[2][0]='x'
tup[2][1]='y'
print(tup)
 
结果
B
('a', 'b', ['x', 'y'])
表面上看,tuple的元素确实变了,但其实变的不是tuple的元素,而是list的元素。tuple一开始指向的list并没有改成别的list,所以,tuple所谓的“不变”是说,tuple的每个元素,指向永远不变。即指向'a',就不能改成指向'b',指向一个list,就不能改成指向其他对象,但指向的这个list本身是可变的!表面上看,tuple的元素确实变了,但其实变的不是tuple的元素,而是list的元素。tuple一开始指向的list并没有改成别的list,所以,tuple所谓的“不变”是说,tuple的每个元素,指向永远不变。即指向'a',就不能改成指向'b',指向一个list,就不能改成指向其他对象,但指向的这个list本身是可变的!
总之一句话:元组指向的对象不能变,但是元组中列表的值可以改变
-----------------------------------------
 
tup=('192.168.35.130','lzc','root',123456,'mysql')
tup2=(1,2,3,4,5,)
# 计算元素个数
# print(len(tup))
# 返回元素中的最小值(必须是int类型,不然会报错)
# print(min(tup2))
# 列表转换为元组
# list=[1,2,3,4,5,6]
# tup3=tuple(list)
# print(type(tup))
# 查:
# print(tup[0])
# 取元组的的下标为2的值
# print(tup[2])
# 去元组前面3个元素的值
# print(tup[:3])
# 链接两个元组
# tup3=tup+tup2
# print(tup3)
# 删除元组
# del tup2
# print(tup2)
对比两个元组:
import operator
tup=('192.168.35.130','lzc','root',123456,'mysql')
tup2=(1,2,3,4,5,)
print(operator.eq(tup,tup2))
 
------------------------------------------
# 计算元素个数
 
# 返回元素中的最小值、最大值
 
# 列表转换为元组
 
# 查:
# 取元组的的下标为2的值
# 去元组前面3个元素的值
 
# 链接两个元组
 
# 删除元组
 
#对比两个元组:
 
******************************************************
集合:
集合:集合是一种数据类型,一个类似列表的东西
与列表相比:它的特点是无序的,不重复 也就是说集合中是没有重复的数据
 
set拥有类似dict的特点:可以用{}花括号来定义;其中的元素没有序列,也就是是非序列类型的数据;而且,set中的元素不可重复,这就类似dict的键.
set也有继承了一点list的特点:如可以原处修改(事实上是一种类别的set可以原处修改,另外一种不可以)
 
定义集合:
定义一个空集合
s=set()
print(type(s))
 
1、通过强制类型转换
nums=[1,1,2,3,34,2]
num_set=set(nums)
 
2、直接定义集合
num_set1={1,2,3,4,5,6} #与定义字典的区别是 字典中含有冒号 集合没有
 
set1.add(2222) #添加元素
print('添加元素:',set1)
set1.update([111,222,333]) #把list里面的东西更新进去 如果是字符串 会一个一个得添加进去
 
s1={1,2,4,6,7,8,9,90}
s1.update('ljk') #需要先update 然后才能打印
print(s1)
结果:
{1, 2, 4, 6, 7, 8, 9, 11, 'j', 'k', 22, 'l', 90}
#update 字符串是以元素下标为个体添加进去,如'abc'那就是将a,b,c分别添加进去
# update 列表也是以元素下标为个体添加进去 ['abc','lkj'] 将'abc'和'lkj添加进去
 
print(set1)
set1.remove(111) #删除元素,如果元素不存在就会报错
print('删除元素,如果元素不存在就会报错:',set1)
set1.pop() #删除一个随记的元素,并返回删除的元素
print('删除一个随记的元素,并返回删除的元素:',set1)
set1.discard('ddd') #删除的元素存在,删除,不存在不做任何处理
print('删除的元素存在,删除,不存在不做任何处理:',set1)
print(set1.clear()) 将set全部清空
 
set1={1,2,3,457,78}
set2={1,2,4,6,78}
set3={1,2}
print('交集:',set1.intersection(set2))
print('并集:',set1.union(set2))
print('并集2:',set1 | set2)
print('差集:',set1.difference(set2))
print('差集2:',set1 - set2)
 
print('判断set3是不是set2的子集:',set3.issubset(set2))
print('判断set2是不是set3的子集:',set2.issuperset(set3))
print('判断是否有交集:',set1.isdisjoint(set3))
print('^ 除相同元素以外的元素',set1^set2)
 
-------------------------------------------------------------------------------------------------------
# 创建一个空集合
# s=set()
# print(type(s))
# 定义一个集合
# s={1,2,3,4,}
# print(type(s))
# s1={1,2,4,6,7,8,9,90}
# s2={2,3,5,4,6,'f'}
# # 添加元素
# s1.add('kskksks')
# print(s1)
#添加元素update
# s1.update([11,22])
# s1.update('ljk')
# print(s1)
# 字符串是以元素下标为个体添加进去,如'abc'那就是将a,b,c分别添加进去
# 列表也是以元素下标为个体添加进去 ['abc','lkj'] 将'abc'和'lkj添加进去
#删除元素
# s1.remove(90)
# print(s1)
# #随机的删除一个元素
# s1.pop()
# print(s1)
#删除的元素村存在就删除,不存在就不删除
# s1.discard(190)
# print(s1)
#删除整个集合
# print(set1.clear())
#list转换为集合
# l=[1,2,3,4,5,7]
# s1=set(l)
# print(type(s1))
#取两个集合间的交集
# s1={1,2,4,6,7,8,9,90}
# s2={2,3,5,4,6,'f'}
# print(s1.intersection(s2))
# 取两个集合的并集(两种方式)
# s1={1,2,3,5}
# s2={4,3,6,2}
# print(s1.union(s2))
# print(s1|s2)
#取差集 (两种方式)
# s1={1,2,3,5}
# s2={4,3,6,2}
# print(s1.difference(s2))
# print(s1-s2)
 
set1={1,2,3}
set2={1,2,3,4,6,7}
# 判断两个集合是否有交集
# print(set1.isdisjoint(set2))
#判断set1是不是set2的子集
# print(set1.issubset(set2))
#判断set1是不是set2的子集
# print(set1.issuperset(set2))
# '判断是否有交集
# print(set1.isdisjoint(set2))
# 除相同元素以外的元素
# print(set1^set2)
 
 
 
 
 
 
 
 

转载于:https://www.cnblogs.com/zunchang/p/7638138.html

相关文章:

  • 读Zepto源码之Fx模块
  • JS_dom_自定义对象
  • [CQOI 2010]扑克牌
  • 判断是否为汉字
  • 编程感悟
  • Oracle 重启监听
  • iOS 静默拍照!!!
  • 指定网卡ping另外的网卡
  • 4 Median of Two Sorted Arrays(medium)
  • jdk8 stream可以与list,map等数据结构互相转换
  • 软件开发阶段数据库升级维护策略
  • web基础,用html元素制作web页面
  • js 右键菜单
  • Vue与swiper相结合封装全屏轮播插件
  • 201621123058《java程序设计》第四周学习总结
  • Angular 2 DI - IoC DI - 1
  • Docker 笔记(1):介绍、镜像、容器及其基本操作
  • HashMap ConcurrentHashMap
  • JDK 6和JDK 7中的substring()方法
  • js作用域和this的理解
  • macOS 中 shell 创建文件夹及文件并 VS Code 打开
  • mysql常用命令汇总
  • Promise初体验
  • 翻译:Hystrix - How To Use
  • 一些css基础学习笔记
  • 与 ConTeXt MkIV 官方文档的接驳
  • 找一份好的前端工作,起点很重要
  • 摩拜创始人胡玮炜也彻底离开了,共享单车行业还有未来吗? ...
  • 如何在招聘中考核.NET架构师
  • #NOIP 2014# day.2 T2 寻找道路
  • #我与Java虚拟机的故事#连载07:我放弃了对JVM的进一步学习
  • (+4)2.2UML建模图
  • (1)安装hadoop之虚拟机准备(配置IP与主机名)
  • (16)Reactor的测试——响应式Spring的道法术器
  • (done) NLP “bag-of-words“ 方法 (带有二元分类和多元分类两个例子)词袋模型、BoW
  • (NSDate) 时间 (time )比较
  • (含react-draggable库以及相关BUG如何解决)固定在左上方某盒子内(如按钮)添加可拖动功能,使用react hook语法实现
  • (论文阅读40-45)图像描述1
  • (四)Controller接口控制器详解(三)
  • (终章)[图像识别]13.OpenCV案例 自定义训练集分类器物体检测
  • (转)Linux下编译安装log4cxx
  • ./configure、make、make install 命令
  • .htaccess配置常用技巧
  • .NET Framework杂记
  • .Net 知识杂记
  • .net和php怎么连接,php和apache之间如何连接
  • .NET开发不可不知、不可不用的辅助类(三)(报表导出---终结版)
  • .vue文件怎么使用_我在项目中是这样配置Vue的
  • 。Net下Windows服务程序开发疑惑
  • @Async注解的坑,小心
  • @column注解_MyBatis注解开发 -MyBatis(15)
  • @Conditional注解详解
  • @data注解_SpringBoot 使用WebSocket打造在线聊天室(基于注解)
  • [100天算法】-二叉树剪枝(day 48)
  • [100天算法】-每个元音包含偶数次的最长子字符串(day 53)