元组(tuple)特点:

  1.元组是以圆括号“()”包围的数据集合,不同成员以“,”分隔。通过下标进行访问

  2.不可变序列,可以看做不可变的列表,与列表不同:元组中数据一旦确立就不能改变(所以没有类似列表的增删改操作,只有基本序列操作)

  3.支持任意类型,任意嵌套以及常见的序列操作

  4.元组通常用在使语句或用户定义的函数能够安全地采用一组值的时候,即被使用的元组的值不会改变

  5.tuple没有像列表一样有append/extend/remove/pop等增删改操作,它存在的目的就是不想让别人修改它

元组常用使用方法:

>>> t = ()  #空元组
>>> t =('a',)  #单个元素元组,注意逗号必须
>>> t =('a','b','c',)

其他同序列基本操作:分片,索引:

>>> print t[0]
a
>>> print t[-1]
c
>>> print t[:2]  #分片打印从0开始到第2个元素,注意不包含第二个
('a','b')

对元组的操作并不会对原来的元组造成影响:

>>> print t+('d','e')
('a', 'b', 'c', 'd', 'e')
>>> print t * 2
('a', 'b', 'c', 'a', 'b', 'c')
>>> print t.index('a')
0
>>> print t.count('b')
1

列表元组转换,在这里列表和元组能够相互转换是因为他们内部接收的都是一个序列,而不是一个指定的列表或者元组:

>>> l = [1,2,3]
>>> lt = tuple(l)
>>> print lt
(1, 2, 3)

字符串转元组之后得到字符元组序列:

>>> print tuple('hello')
('h','e','l','l','o')

元组的用途:

1.赋值

>>> t = 1,2,3  #等价 t = (1, 2, 3)
>>> x, y, z = t  #序列拆封,要求左侧变量数目和右侧序列长度相等

2.函数多个返回值

>>> def test():
>>> return (1,2)
>>> x, y = test()

3.传参

>>> def print_list(l):
>>> t = tuple(l)
>>> dosomething()

4.字符串格式化

>>> print ("Hi my name is %s, I'm %d years old" % ('stanley',2))
Hi my name is stanley, I'm 2 years old

元组相比其他类型的优点:

1.性能:

  tuple比列表操作速度更快

2.不可变性:

  对不需要的数据进行“写保护”,使代码更加安全

  不可变性,若在程序中以列表形式传递对象集合,可能在任何地方被改变,使用元组,则不能

  不可变性只适用于元组本身顶层而非其内容,例如元组内部的列表可以修改

Python基础:元组的更多相关文章

  1. python基础——元组(tuple)

    Python的元组与列表类似,不同之处在于元组的元素不能修改. 元组使用小括号,列表使用方括号. 元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可. tuple1 = () tuple2 = ...

  2. Python基础-元组、列表、字典

    元组tuple 元组被称为只读列表,即数据可以被查询,但不能被修改,所以,字符串的切片操作同样适用于元组.例:(1,2,3)("a","b","c&q ...

  3. python基础——元组、文件及其它

    Python核心数据类型--元组 元组对象(tuple)是序列,它具有不可改变性,和字符串类似.从语法上讲,它们便在圆括号中,它们支持任意类型.任意嵌套及常见的序列操作. 任意对象的有序集合:与字符串 ...

  4. python基础——元组

    元组运算符 与字符串一样,元组之间可以使用 + 号和 * 号进行运算.这就意味着他们可以组合和复制,运算后会生成一个新的元组. Python 表达式 结果 描述 len((1, 2, 3)) 3 计算 ...

  5. python 基础 元组()

    # 元组 应用场景 # 尽管 Python的列表中可以存储不同类型的数据 # 但是在开发中,更多的应用场景是 # 1.列表存储相同类型的数据 # 2.通过迭代遍历,在循环体内部,针对列表中的每一项元素 ...

  6. python基础 - 元组操作

    元组 tuple 元组是不可变对象. 元组初始化 t = tuple() t = () t = tuple(range(1,7,2)) t = (1,2,3,4,5,1) t = (1,) t = ( ...

  7. python基础-元组

    操作元组 获取元组中的值 tup1 = ('高数','计算机',2008,2016) tup2 = (1,2,3,4,5,6,7) #和list的一样,同样取下标1,2,3,4的值 print(&qu ...

  8. python基础-元组(tuple)及内置方法

    元组-tuple 用途:用于存储多个不同类型的值,但是不能存储可变类型数据 定义方法:用小括号存储数据,数据与数据之间通过逗号分隔,元组中的值不能改变. 注意: 1.定义元组时,如果里面只有一个值,在 ...

  9. .Net程序员之Python基础教程学习----列表和元组 [First Day]

    一. 通用序列操作: 其实对于列表,元组 都属于序列化数据,可以通过下表来访问的.下面就来看看序列的基本操作吧. 1.1 索引: 序列中的所有元素的下标是从0开始递增的. 如果索引的长度的是N,那么所 ...

  10. Python基础:序列(列表、元组)

    一.概述 列表(list)是由一个个 Python对象 组成的序列.其中,Python对象 可以是任何类型的对象,包括 Python标准类型(数值.字符串.列表.元组和字典)以及 用户自定义类型(类) ...

随机推荐

  1. sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

    httpclient-4.5.jar 定时发送http包,忽然有一天报错,http证书变更引起的. 之前的代码 try { CloseableHttpClient httpClient = build ...

  2. linux下解决80端口被占用

    安装一个nginx服务,在启动的时候报80端口被占用了,我们来检查一下有哪些服务占用了80端口 首先我们查一下占用80端口的有哪些服务,netstat -lnp|grep 80 查看80端口被那些服务 ...

  3. CommonJS、AMD、CMD、ES6——JavaScript模块化

    CommonJS规范:Node AMD规范:RequireJS CMD规范:SeaJS ES6模块

  4. PTA --- 天梯赛 L1-064 估值一亿的AI核心代码

    L1-064 估值一亿的AI核心代码 (20 point(s)) 本题要求你实现一个稍微更值钱一点的 AI 英文问答程序,规则是: 无论用户说什么,首先把对方说的话在一行中原样打印出来: 消除原文中多 ...

  5. Linux 使用中history 默认记录数不够用了?

    1.默认情况下,系统能保存1000条的历史命令. #echo $HISTSIZE   2.那么1000条不够用,该怎么办呢? #vi /etc/profile 修改HISTSIZE=1000 > ...

  6. 【AMAD】django-filer -- 一个管理文件和图片的django app

    动机 简介 个人评分 动机 django-filer1可以让你像一些云存储一样使用WEB UI控制你的文件. 简介 下面是前端图片:   个人评分 类型 评分 实用性 ⭐️⭐️⭐️⭐️ 易用性 ⭐ ...

  7. SQL Injection(Blind)

    SQL Injection(Blind),即SQL盲注,与一般注入的区别在于,一般的注入攻击者可以直接从页面上看到注入语句的执行结果,而盲注时攻击者通常是无法从显示页面上获取执行结果,甚至连注入语句是 ...

  8. 【Linux开发】Linux模块机制浅析

    Linux允许用户通过插入模块,实现干预内核的目的.一直以来,对linux的模块机制都不够清晰,因此本文对内核模块的加载机制进行简单地分析. 模块的Hello World! 我们通过创建一个简单的模块 ...

  9. 用vs2008打开sln项目总是说没有对应的,打不开vs2008的工程文件提示不支持项目类型(.csproj)

    找了很多解决办法都搞不定,最后找了个老司机问了一下,原来是组件没有安装完整!!!只是安装了个vs2008的外壳...下次先检查开发工具是否完整!下载安装包安装vs再说吧!

  10. spring boot 框架根據 sql 創建語句自動生成 MVC層類代碼

    GITHUB: https://github.com/lin1270/spring_boot_sql2code 會自動生成model.mapper.service.controller. 代碼使用No ...