python基础教程之元组操作使用详解

 更新时间:2014年03月25日 11:12:11   作者:  
这篇文章主要介绍了python的元组操作使用方法,需要的朋友可以参考下

简介

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

相关文章

  • Python正则表达式匹配数字和小数的方法

    Python正则表达式匹配数字和小数的方法

    这篇文章主要介绍了Python正则匹配数字和小数的方法,本文通过示例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-07-07
  • Python中的shutil模块详析

    Python中的shutil模块详析

    这篇文章主要介绍了Python中的shutil模块详析,Python的Shutil模块可以看做是OS模块的补充,它提供了对文件(夹)复制,移动,删除,压缩和解压缩的方法,下面本文会对shutil模块的常用方法进行分类介绍,需要的朋友可以参考下
    2023-09-09
  • 使用python svm实现直接可用的手写数字识别

    使用python svm实现直接可用的手写数字识别

    这篇文章主要介绍了使用python svm实现直接可用的手写数字识别,现在网上很多代码是良莠不齐,真是一言难尽,于是记录一下,能够运行成功并识别成功的一个源码
    2021-08-08
  • Python返回数组/List长度的实例

    Python返回数组/List长度的实例

    今天小编就为大家分享一篇Python返回数组/List长度的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-06-06
  • 通过字符串导入 Python 模块的方法详解

    通过字符串导入 Python 模块的方法详解

    这篇文章主要介绍了通过字符串导入 Python 模块的方法详解,本文通过实例结合,给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-10-10
  • 简单的Python2.7编程初学经验总结

    简单的Python2.7编程初学经验总结

    这篇文章主要是作者写给Python2.7编程初学者的经验总结,侧重于包管理、代码调试等实际使用方面,需要的朋友可以参考下
    2015-04-04
  • Python中的布尔类型bool

    Python中的布尔类型bool

    这篇文章主要为大家介绍了Python中的布尔类型bool使用示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04
  • windows 10 设定计划任务自动执行 python 脚本的方法

    windows 10 设定计划任务自动执行 python 脚本的方法

    这篇文章主要介绍了windows 10 设定计划任务自动执行 python 脚本的方法,本文图文并茂给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-09-09
  • Python中Word文件自动化操作小结

    Python中Word文件自动化操作小结

    Python-docx是一个Python库,提供了对Microsoft Word(.docx文件)的读写和修改功能,本文主要介绍了如何使用Python-docx实现Word文件自动化操作,需要的可以参考下
    2024-04-04
  • 解决Pycharm调用Turtle时 窗口一闪而过的问题

    解决Pycharm调用Turtle时 窗口一闪而过的问题

    今天小编就为大家分享一篇解决Pycharm调用Turtle时 窗口一闪而过的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-02-02

最新评论