下面给大家介绍以下元组的相关知识:

  ·元组可以看成是一个不可更改的list

1.元组的创建

# 创建空元祖
t = ()
print(type(t)) # 创建只有一个值的元组
# 观察可知元组中如果纯数字的话,类型是int,加个逗号就好了
t1 = (1)
t2 = (1,)
print(type(t1))
print(type(t2)) t = 1,# 也要有逗号
print(type(t))
print(t) # 创建多个值的元组类型1
t = (1,2,3,4,5)
print(type(t))
print(t)
# 创建多个值的元组类型2
t = 1,2,3,4,5
print(type(t))
print(t) # 使用其他结构创建
l = [1,2,3,4,5]
t = tuple(l)
print(type(t))
print(t)
<class 'tuple'>
<class 'int'>
<class 'tuple'>
<class 'tuple'>
(1,)
<class 'tuple'>
(1, 2, 3, 4, 5)
<class 'tuple'>
(1, 2, 3, 4, 5)
<class 'tuple'>
(1, 2, 3, 4, 5) 元组的特性
  • 是序列表,有序
  • 元组数据值可以访问,不能修改,不能修改,不能修改
  • 元组数据可以是任意类型
  • 总之,list所有的特性,除了修改外,元组都具有
  • 也就意味者,list具有一些操作,比如索引,分片,序列相加,相乘,成员资格操作等,一模一样

# 索引操作
t = (1,2,3,45)
print(t[2])

3
# 超标在list中超标是会报错的,而tuple中不会报错
#list中
print(t[12])

报错:
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
<ipython-input-97-81e870641898> in <module>()
1 # 超标在list中超标是会报错的,而tuple中不会报错
----> 2 print(t[12]) IndexError: tuple index out of range
 
t = (1,2,3,4,5,6)
t1 = t[1::2]
print(id(t))
print(id(t1))
print(t1) # tuple中的切片是不报错的
print(t[1:200])

140106142035688
140106141748032
(2, 4, 6)
(2, 3, 4, 5, 6)

# 序列相加
t1 = (1,2,3)
t2 = (4,5,6)
# 传址操作
print(t1)
print(id(t1))
t1 = t1 + t2
print(t1)
print(id(t1)) # 以上操作,类似于
t1 = (1,2,3)
t1 = (2,3,4) # tuple 的不可修改,指的是内容的不可修改
# 修改tuple内容会导致报错
t1[1] = 100
(1, 2, 3)
140106142173296
(1, 2, 3, 4, 5, 6)
140106142035688

# 元组相乘
t = (1,2,3)
t = t*3
print(t)

(1, 2, 3, 1, 2, 3, 1, 2, 3)

# 成员检测
t = (1,2,3)
if 2 in t:
print("yes")
else:
print("no")

yes
# 元组遍历,一般采用for循环
# 1.单层元组遍历
t = (1,2,3,"python","java")
for i in t:
print(i,end=" ")
1 2 3 python java 
# 2.双层元组遍历
t = ((1,2,3),("python","java","c"))
#比对以上元组的遍历,可以如下
#1.
for i in t:
print(i,end=" ") print()
for k,m,n in t:
print(k,"--",m,"--",n)
(1, 2, 3) ('python', 'java', 'c')
1 -- 2 -- 3
python -- java -- c 关于元组的函数:
  • 以下看代码
  • 以下所有函数,对list基本适用

# len:获取元组的长度
t = (1,2,3,4,5)
len(t)
print(len(t))


# tuple:转换或创建元组
l = [1,2,3,14,5,60]
t = tuple(l)
print(t) t = tuple()
print(t)

(1, 2, 3, 14, 5, 60)
()
# count: 计算指定数据出现的次数
t = (1,2,1,2,6,5,1)
print(t.count(1))
3
# index :求制定元素在元组中的索引位置

print(t.index(6))
#如果需要查找的数字是多个,则返回第一个 print(t.index(1))

4
0
元组变量交换法
  • 俩个变量交换值

# 俩个变量交换值
a = 1
b = 3
print(a)
print(b)
print("*"*30)
# Java程序员会这么写
c = a
a = b
b = c
print(a)
print(b)
print("*"*30) # python程序员的写法
a,b=b,a
print(a)
print(b)

1
3
******************************
3
1
******************************
1
3
												

Python中元组相关知识的更多相关文章

  1. python中元组、列表、字典、集合知识

    像列表一样处理字符串: 仅需要看字符串的首字符就知道如何处理该字符串的情况也很常见.例如,如果有一个姓与名的列表,您可以使用与列表相同的语法查看名与姓的第一个字符.这种看待字符串的方法叫做分片(sli ...

  2. 面向对象相关概念与在python中的面向对象知识(魔法方法+反射+元类+鸭子类型)

    面向对象知识 封装 封装的原理是,其成员变量代表对象的属性,方法代表这个对象的动作真正的封装是,经过深入的思考,做出良好的抽象(设计属性时用到),给出“完整且最小”的接口,并使得内部细节可以对外透明( ...

  3. python之类的相关知识

    面向对象技术简介 类: 用来描述具有相同的属性和方法的对象的集合.它定义了该集合中每个对象所共有的属性和方法.对象是类的实例. 类变量:类变量在整个实例化的对象中是公用的.类变量定义在类中且在函数体之 ...

  4. python类的相关知识第二部分

    类的继承.多态.封装 一.类的继承 1.应用场景: 类大部分功能相同,大类包含小类的情况 例如: 动物类 共性:都要吃喝拉撒.都有头有脚 特性: 猫类.走了很轻,叫声特别,喜欢白天睡觉 狗类.的叫声很 ...

  5. Python面对对象相关知识总结

    很有一段时间没使用python了,前两天研究微信公众号使用了下python的django服务,感觉好多知识都遗忘了,毕竟之前没有深入的实践,长期不使用就忘得快.本博的主要目的就是对Python中我认为 ...

  6. Python 网络编程相关知识学习

    Python 网络编程 Python 提供了两个级别访问的网络服务.: 低级别的网络服务支持基本的 Socket,它提供了标准的 BSD Sockets API,可以访问底层操作系统Socket接口的 ...

  7. python中元组tuple

    python中列表(list)和元组(tuple)有很多相似的地方,它们都是容器,由一系列的对象构成,都可以包含任意类型的元素,甚至是一个序列.   list和tuple的不同首先体现在写法上: li ...

  8. python中多线程相关

    基础知识 进程:进程就是一个程序在一个数据集上的一次动态执行过程 数据集:程序执行过程中需要的资源 进程控制块:完成状态保存的单元 线程:线程是寄托在进程之上,为了提高系统的并发性 线程是进程的实体 ...

  9. python中一些列表知识

    列表 序列是 Python 中最基本的数据结构. 序列中的每个值都有对应的位置值,称之为索引,第一个索引是 0,第二个索引是 1,依此类推. Python 有 6 个序列的内置类型,但最常见的是列表和 ...

随机推荐

  1. 剑指offer编程题Java实现——面试题14调整数组顺序使奇数位于偶数之前

    题目: 输入一个整数数组,实现一个函数来调整该数组中数组的顺序,使得所有的奇数位于数组的前半部分,偶数位于数组的后半部分. 解题思路:数组中维护两个指针,第一个指针初始化时候指向数组头部,第二个指针初 ...

  2. spring boot开发笔记——mybatis

    概述   mybatis框架的优点,就不用多说了,今天这边干货主要讲mybatis的逆向工程,以及springboot的集成技巧,和分页的使用   因为在日常的开发中,当碰到特殊需求之类会手动写一下s ...

  3. 本地调用QQ只需要一句代码

    如下图:点击在线客服以后,弹出QQ登录框 经测试,如果已经登录QQ,可能会提示版本不支持该功能,让你升级,但并不一定就是说你QQ版本需要更新,只是因为你QQ已经登录 有的浏览器可能因为出于安全考虑,会 ...

  4. 导入Excel文件

    选择文件 #region //获取路径 string FilePath = ""; //选择文件 OpenFileDialog openFileDialog1 = new Open ...

  5. UFLDL 教程学习笔记(三)自编码与稀疏性

    UFLDL(Unsupervised Feature Learning and Deep Learning)Tutorial 是由 Stanford 大学的 Andrew Ng 教授及其团队编写的一套 ...

  6. Python:SQLMAP参数中文解释

    #HiRoot's BlogOptions(选项):--version 显示程序的版本号并退出-h, --help 显示此帮助消息并退出-v VERBOSE 详细级别:0-6(默认为1) Target ...

  7. MySQL百万级、千万级数据多表关联SQL语句调优

    本文不涉及复杂的底层数据结构,通过explain解释SQL,并根据可能出现的情况,来做具体的优化,使百万级.千万级数据表关联查询第一页结果能在2秒内完成(真实业务告警系统优化结果).希望读者能够理解S ...

  8. CentOS 安装 kafka

    首先确保JDK已正确安装并设置好环境变量 安装Zookeeper 到官网下载: https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/ zooke ...

  9. Eureka单机高可用伪集群配置

    Eureka Server高可用集群理论上来讲,因为服务消费者本地缓存了服务提供者的地址,即使Eureka Server宕机,也不会影响服务之间的调用,但是一旦新服务上线,已经缓存在本地的服务提供者不 ...

  10. 附实例!实现iframe父窗体与子窗体的通信

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由前端林子发表于云+社区专栏 本文主要会介绍如何基于MessengerJS,实现iframe父窗体与子窗体间的通信,传递数据信息.同时本 ...