一. 元组
1、概念
列表:是一种有序的集合

元组和列表的区别:

​ a.列表:[] 元组:()

​ b.列表中的元素可以进行增加和删除操作,但是,元组中的元素不能进行修改

​ c.相同点:都是一种容器,都可以同时存储 不同类型的数据

2.创建元组
创建元组:创建空元组:tuple = () 创建有元素的元组:tuple1 = [元素1,元素2.....]

#1.创建空元组

tuple1 = ()

#2.创建带有元素的元组

tuple2 = (10,20,30)

#3.和列表类似,在元组中可以存储重复元素

tuple3 = (10,20,10,30,10)

print(tuple3)

#4.和列表类似,在同一个元组中国可以同时存储不同类型的数据
tuple4 = ("hello",True,10)

#5.特殊情况:如果创建的元组中只有一个元素,使用逗号消除歧义
tuple5 = (10)

print(tuple5)

tuple5 = 10

print(tuple5)

#为了消除歧义,修改
tuple5 = (10,)

print(tuple5)

3.元组的访问
获取值:语法:元组名[索引]

代码演示:



tuple1 = (10,20,30,40,50)

#1.获取元素值

print(tuple1[1])

#获取元组中的最后一个元素

print(tuple1[4])


#注意:索引为正数表示从前往后获取,负数表示从后往前获取,-1表示元组中的最后一个元素

print(tuple1[-1])

print(tuple1[-2])


#索引越界

#print(tuple1[5]) #IndexError: tuple index out of range

#print(tuple1[-6]) #IndexError: tuple index out of range


#2.修改元素值

#和列表不同的地方:元组中的元素不能进行随意的更改

#tuple1[2] = 100

print(tuple1) #TypeError: 'tuple' object does not support item assignment


#特殊情况:元组中的元素不能随意更改,本质指的是不能更改地址

tuple2 = (1,3,43,5,[54,54,5])

print(tuple2)

list1 = tuple2[4]

list1[1] = 100 #可以更改,因为列表的地址没变

print(tuple2)

"""

(1, 3, 43, 5, [54, 54, 5])

(1, 3, 43, 5, [54, 100, 5])

"""

#3.删除元组

del tuple2

4.元组的操作
#1.组合:+ #2.重复:* #3.判断元素是否在元组中:成员运算符:int not in #4.元组截取【切片】:类列表,包头不包尾

#1.获取元组中元素的个数 #2.获取元组中元素的最大值和最小值
二.集合
1、概念
Python中的集合跟数学上的集合是一致的

特点;不允许有重复元素,可以进行交集,并集或者差集的计算

set和dict类似,和dict的区别在于:set相当于只是存储了key的集合

本质:无序且无重复元素的集合
2.集合的创建

set的创建没有特有的符号,主要是通过list,tuple,dict进行创建

3.集合的操作
#1添加 add()插入:update()【打散插入】

#2删除remove()

#3遍历的时候直接遍历

#4交集和并集

s4 = set([43,54,5,6])

s5 = set([545,4,65,6,75])

#交集:&【按位与】 and

r1 = s4 & s5

print(r1)

print(type(r1))

#并集:|【按位或】 or

r2 = s4 | s5

print(r2)

python学习之路08——元组、集合的更多相关文章

  1. Python学习之路——Day06 元组

    一.元组 t1 = (1, 2) t2 = tuple((1, 2)) t3 = (1, ) # 索引 | 切片 | 长度 # .count(obj) | .index(obj, bIndex, eI ...

  2. python学习之路-day2-pyth基础2

    一.        模块初识 Python的强大之处在于他有非常丰富和强大的标准库和第三方库,第三方库存放位置:site-packages sys模块简介 导入模块 import sys 3 sys模 ...

  3. Python学习之路-Day2-Python基础3

    Python学习之路第三天 学习内容: 1.文件操作 2.字符转编码操作 3.函数介绍 4.递归 5.函数式编程 1.文件操作 打印到屏幕 最简单的输出方法是用print语句,你可以给它传递零个或多个 ...

  4. Python学习之路-Day2-Python基础2

    Python学习之路第二天 学习内容: 1.模块初识 2.pyc是什么 3.python数据类型 4.数据运算 5.bytes/str之别 6.列表 7.元组 8.字典 9.字符串常用操作 1.模块初 ...

  5. Python学习2-列表和元组

    Python学习2-列表和元组 标签(空格分隔): 列表 元组 在Python中,最基本的数据结构是序列(sequence).序列中的每个元素被分配一个序号--即元素的位置,也称为索引.索引从0开始. ...

  6. Python学习之路-Day1-Python基础

    学习python的过程: 在茫茫的编程语言中我选择了python,因为感觉python很强大,能用到很多领域.我自己也学过一些编程语言,比如:C,java,php,html,css等.但是我感觉自己都 ...

  7. python学习之路网络编程篇(第四篇)

    python学习之路网络编程篇(第四篇) 内容待补充

  8. Python学习之路【第一篇】-Python简介和基础入门

    1.Python简介 1.1 Python是什么 相信混迹IT界的很多朋友都知道,Python是近年来最火的一个热点,没有之一.从性质上来讲它和我们熟知的C.java.php等没有什么本质的区别,也是 ...

  9. python 学习之路开始了

    python 学习之路开始了.....记录点点滴滴....

随机推荐

  1. 剑指offer(55)链表中环的入口节点

    题目描述 给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null. 题目分析 1.一快一慢指针,先找到碰撞点. 2.然后碰撞点到入口节点的距离就是头结点到入口节点的距离. 具体原理可 ...

  2. 【Bilinear interpolation】双线性插值详解(转)

           最近在做视频拼接的项目,里面用到了图像的单应性矩阵变换,在最后的图像重映射,由于目标图像的坐标是非整数的,所以需要用到插值的方法,用的就是双线性插值,下面的博文主要是查看了前辈的博客对双 ...

  3. zookeeper及kafka集群搭建

    zookeeper及kafka集群搭建 1.有关zookeeper的介绍可参考:http://www.cnblogs.com/wuxl360/p/5817471.html 2.zookeeper安装 ...

  4. Servelet开发步骤和生命周期

    Servelet开发步骤和生命周期 (1)    程序员开发程序,实现servelet的init和destroy接口 .重写servlet的 doGet.doPost.doPut.doDelete四个 ...

  5. Axure 页面内多组内容切换的实现 + 利用一个内联框架实现百度地图访问

    Axure  页面内多组内容切换的实现,场景:点击某个元件的时候,会显示响应的页面 操作:将显示的页面设置为动态面板,如图所示应该设置动态面板的状态为三个状态,分别为点击qq账号.手机账号.邮箱账号时 ...

  6. 使用Jekins自动构建项目(GitLab+Java Maven)

    1. 登录Jekins 前提: Jekins 已经部署完成并能登录版本:Jenkins2.60.2 http://IP:端口/jenkins/view/all/newJob 2. 新建构建任务 选择项 ...

  7. 机器学习 之XGBoost算法

    目录 1.基本知识点简介 2.XGBoost提升树算法 2.1 XGBoost原理 2.2 XGBoost中损失函数的泰勒展开 2.3 XGBoost中正则化项的选定 2.4 最终的目标损失函数及其最 ...

  8. Elasticsearch5.5通过案例学习简单操作

    1. 建立员工目录 ES数据库对象与关系型数据库对象对比 Relational DB -> Databases -> Tables -> Rows -> ColumnsElas ...

  9. 再次提供一个纯粹通过pl/sql解析json的方法。

    在github上面有一个叫pljson的项目,该项目就是用pl/sql 来解析json的. 项目地址:pljson(需翻|强),如果翻不了强的同学,我在国内克隆了一个副本,不定期同步更新 pljson ...

  10. echarts和highcharts比较

    echarts底层为canvas,highcharts底层为svg canvas特点: ①依赖分辨率 ②不支持事件处理器 ③弱的文本渲染能力 ④能够以.jpg..png格式保存结果图像 ⑤最适合图像密 ...