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

  ·元组可以看成是一个不可更改的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. ReactNative学习笔记(六)集成视频播放

    概述 视频播放可以自己写原生代码实现,然后注入JS.如果对视频播放没有特殊要求的话,可以直接使用现成插件. 到官方推荐的插件网站搜索找到下载量第一的插件:react-native-video. 安装 ...

  2. Kaldi单音素模型 训练部分

    在Kaldi中,单音素GMM的训练用的是Viterbi training,而不是Baum-Welch training.因此就不是用HMM Baum-Welch那几个公式去更新参数,也就不用计算前向概 ...

  3. Linux pwn入门教程(0)——环境配置

    作者:Tangerine@SAINTSEC 0×00前言 作为一个毕业一年多的辣鸡CTF选手,一直苦于pwn题目的入门难,入了门更难的问题.本来网上关于pwn的资料就比较零散,而且经常会碰到师傅们堪比 ...

  4. 初识The ONE

    Author:bakari  Date:2014.1.14 转载请注出处:http://www.cnblogs.com/bakari/p/3519841.html,谢谢! 本学期开始做真正意义上的研究 ...

  5. Liferay7 BPM门户开发之15: Liferay开发体系简介

    Liferay SDK 开发体系 主要分6种: Portlet Hook Theme Layout Templates Web Modules Ext Portlet :类似于servlet的web组 ...

  6. C# 对密码等数据进行对称性加密解密

    类: /// <summary> /// DESEncrypt加密解密算法. /// </summary> public class DESEncrypt { private ...

  7. (转)linux中nmcli命令的使用及网络配置

    原文:https://blog.51cto.com/groot/1847482 http://www.178linux.com/44076----CentOS7中nmcli网络管理及使用详解 http ...

  8. java中Memcache的使用

    java中Memcache的使用 一.什么是Memcached? Memcached是danga.com开发的分布式内存对象缓存系统,所谓分布式,意味着它不是本地的,而是基于网络连接完成服务.Memc ...

  9. JavaSE-关键字final

    final修饰数据: final修饰基本数据类型,使数值恒定不变,修饰对象引用,final使引用恒定不变 final修饰的成员变量必须要被初识化 final可以修饰方法中的参数列表,被修饰的参数无法在 ...

  10. 使用Charles抓取APP之HTTPS请求

    Charles是一款非常好用的抓包工具,通常使用它来进行APP开发抓包调试,尤其是HTTPS请求. 一.安装Charles 去官网(https://www.charlesproxy.com/)下载软件 ...