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

  ·元组可以看成是一个不可更改的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. Apache Phoenix Flume集成 -- JsonEventSerializer改进

    背景 数据从kafka ingest到Phoenix.数据格式采取Json.数据链路: api -> kafka -> Flume -> Phoenix 官方JsonEventSer ...

  2. Android开发工程师文集-提示框,菜单,数据存储,组件篇

    提示框,菜单,数据存储,组件篇 Toast Toast.makeText(context, text, 时间).show(); setDuration();//设置时间 setGravity();// ...

  3. AndroidStudio项目制作倒计时模块

    前言 大家好,给大家带来AndroidStudio项目制作倒计时模块的概述,希望你们喜欢 项目难度 AndroidStudio项目制作倒计时模块的难度,不是很大,就是主要用了Timer和TimerTa ...

  4. 通过用jQuery写一个页面,我学到了什么

    概述 前几天面试,hr发来一个测试文件,让我做做看.我一看,其实就是根据PSD需求写一个页面,再加上一些互动效果即可. 刚好我之前学了切图,jquery等知识还没练手过,于是高兴的答应了. 最后花了3 ...

  5. Tools - 源代码阅读分析工具Source Insight

    简介 https://www.sourceinsight.com/ Source Insight是一个面向项目开发的程序编辑器和代码浏览器,可以分析C/C++.C#.Java.Python等语言源代码 ...

  6. 高手速成android开源项目【tool篇】

    主要包括那些不错的开发库,包括依赖注入框架.图片缓存.网络相关.数据库ORM建模.Android公共库.Android 高版本向低版本兼容.多媒体相关及其他. 一.依赖注入DI 通过依赖注入减少Vie ...

  7. 从零开始学 Web 之 CSS3(二)颜色模式,文字阴影,盒模型,边框圆角,边框阴影

    大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...

  8. 开源网站流量统计系统Piwik源码分析——参数统计(一)

    Piwik现已改名为Matomo,这是一套国外著名的开源网站统计系统,类似于百度统计.Google Analytics等系统.最大的区别就是可以看到其中的源码,这正合我意.因为我一直对统计的系统很好奇 ...

  9. NetMQ 发布订阅模式 Publisher-Subscriber

    第一部分引用于:点击打开 1:简单介绍 PUB-SUB模式一般处理的都不是系统的关键数据.发布者不关注订阅者是否收到发布的消息,订阅者也不知道自己是否收到了发布者发出的所有消息.你也不知道订阅者何时开 ...

  10. Java 容器源码分析之ConcurrentHashMap

    深入浅出ConcurrentHashMap(1.8) 前言 HashMap是我们平时开发过程中用的比较多的集合,但它是非线程安全的,在涉及到多线程并发的情况,进行put操作有可能会引起死循环,导致CP ...