python基础教程之元组操作使用详解
发布时间:2023-11-29 01:18:52
简介
tuple
1.元组是以圆括号“()”包围的数据集合,不同成员以“,”分隔。通过下标进行访问
2.不可变序列,可以看做不可变的列表,与列表不同:元组中数据一旦确立就不能改变(所以没有类似列表的增删改操作,只有基本序列操作)
3.支持任意类型,任意嵌套以及常见的序列操作
4.元组通常用在使语句或用户定义的函数能够安全地采用一组值的时候,即被使用的元组的值不会改变
声明及使用
t = () #空元组
t =(1,) #单个元素元组,注意逗号必须
t =(1,2,3)
1 in t #判断
2 not in t
#其他同序列基本操作:分片,索引
print t[0]
print t[-1]
print t[:2]
#不会对原来元组造成影响
print t+(4,5) #返回新元组(1,2,3,4,5)
print t * 2 #(1,2,3,1,2,3)
t.index(1)
t.count(1)
#列表元组转换
l = [1,2,3]
lt = tuple(l)
tl = list(lt)
lt_sorted = sorted(l) #对元组进行排序,返回是列表
#字符串转元组(得到字符元组序列)
print tuple('hello) #('h','e','l','l','o')
tuple没有append/extend/remove/pop等增删改操作tuple没有find
查看帮助
help(tuple)
用途
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) #或者t = l[:]
dosomething()
4.字符串格式化
print '%s is %s years old' % ('tom', 20)
5.作为字典的key
优点
1.性能
tuple比列表操作速度快
若需要定义一个常量集,或者是只读序列,唯一的操作是不断遍历之,使用tuple代替list
>>> a = tuple(range(1000))
>>> b = range(1000)
>>> def test_t():
... for i in a:
... pass
...
>>> def test_l():
... for i in b:
... pass
...
>>> from timeit import Timer
>>> at = Timer("test_t()", "from __main__ import test_t")
>>> bt = Timer("test_l()", "from __main__ import test_l")
简单测试
>>> at.repeat(3, 100000)
[1.526214838027954, 1.5191287994384766, 1.5181210041046143]
>>> bt.repeat(3, 100000)
[1.5545141696929932, 1.557785987854004, 1.5511009693145752]
2.不可变性
对不需要的数据进行“写保护”,使代码更加安全
不可变性,若在程序中以列表形式传递对象集合,可能在任何地方被改变,使用元组,则不能
不可变性只适用于元组本身顶层而非其内容,例如元组内部的列表可以修改
l = [1,2,3]
t = (1,2,l)
l.append(4)
不可变性提供了某种完整性,规范化,确保不会被修改,保持某种固定关系
修改的方法
tuple -> list -> tuple


猜你喜欢
- 1.子查询概念 (1)就是在查询的where子句中的判断依据是另一个查询的结果,如此就构成了一个外部的查询和一个内部的查询,这个内部的查询就
- 今天要用python做一个小功能,那就是实现万年历的查询。首先看一下整体感觉实现代码:def is_leap_year(year): &nb
- 一.random模块 随机 random() &
- 首先安装需要的模块pip install aliyun-python-sdk-corepip install aliyun-python-s
- Python 关于a=[[]]*3的反思之前用python做了一个关于交通大数据的项目,由于之前比较赶进度,故现在会陆续更新对项目代码的一些
- 原文:http://www.smashingmagazine.com/ ... emarkable-favicons/翻译:Blank(怿飞
- PyQt5工具栏控件QToolBar介绍QToolBar控件是由文本按钮,图标或其他小控件按钮组成的可移动面板,通常位于菜单栏下方QTool
- 尽管Python事实上并不是一门纯函数式编程语言,但它本身是一门多范型语言,并给了你足够的自由利用函数式编程的便利。函数式风格有着各种理论与
- 这篇文章主要介绍了python使用opencv在Windows下调用摄像头实现解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有
- 中间件是我们在软件开发中的一个古老而强大的概念,当我们在应用程序中使用路由相关模式时,它非常有用。如果您不太了解中间件的含义,Nodejs框
- 我介绍了 Systemd 的主要命令,今天介绍如何使用它完成一些基本的任务。一、开机启动对于那些支持 Systemd 的软件,安装的时候,会
- 摆线最简单的旋轮线就是摆线,指圆在直线上滚动时,圆周上某定点的轨迹。设圆的半径为 r ,在x轴上滚动 x距离则意味着旋转了 x
- 本文介绍python TK库简单应用(实时显示子进程输出),分享给大家,具体如下:#!/usr/bin/python3.5# -*- cod
- 我们在做网站的时候,网站后台系统一般都会用到web编辑器,今天笔者就给大家推荐一款百度UEditor编辑器。关于这款百度UEditor编辑器
- python爬虫模块Beautiful Soup简介简单来说,Beautiful Soup是python的一个库,最主要的功能是从网页抓取数
- 优秀的Stoyan Stefanov在他的新书中(《Javascript Patterns》)介绍了很多编写高质量代码的技巧,比如避免使用全
- “/xxxxx”应用程序中的服务器错误。 -------------------------------------------------
- odeJs 微信公众号功能开发,移动端 H5页面调用微信的支付功能。这几天根据公司的需要使用 node 和 h5页面调用微信的支付功能完成支
- SQL(结构化查询语言)是一种通用数据库查询语言。SQL具有数据定义、数据操作和数据控制功能,可以完成数据库的全部工作。SQL语言使用时只需
- 本文实例讲述了Python实现栈的方法。分享给大家供大家参考,具体如下:前言使用Python 实现栈。两种实现方式:基于数组 - 数组同时基