[快学Python3]Tuple(元组)

概述

元组,使用小括号()来标识,其特点是:元组中的元素不可修改

下面我们看下如何创建元组的示例:

tuple1 = (u'DeepTest', u'开源优测', u'1')

tuple2 = (1, 2, 3, 4, 5)

tuple3 = ("a", "b", "c", "d", "e")

内置函数

Python中常用的内置函数有:

  • len 用于计算元组元素的个数
  • max 返回元组中元素最大值
  • min 返回元组中元素最小值
  • tuple 将列表转换成元组

下面我们一起看看上述四个函数的示例:

# -*- coding:utf-8 -*-

__author__ = u'苦叶子'

if __name__ == "__main__":
    tuple_demo = (1, 2, 3, 4, 5, 6, 7, 8, 9, 0)    
    
    # 计算tuple_demo中元素个数
    print(len(tuple_demo))    

    # 返回tuple_demo中最大值的元素
    print(max(tuple_demo))    

    # 返回tuple_demo中最小值的元素
    print(min(tuple_demo))    
    
    # 将list转换成元组
    list_demo = [1, 2, 3, 4, 5, 6]
    tuple1 = tuple(list_demo)    

    # 打印转换后的元组
    print(tuple1)

运行结果如下:

10
9
0
(1, 2, 3, 4, 5, 6)

切片

因为元组也是一个序列,所以我们可以使用Python的切片机制来访问元组中指定位置的元素,也可以截取其中的一段元素。

下面我们一起看看切片操作的示例:

# -*- coding:utf-8 -*-

__author__ = u'苦叶子'

if __name__ == "__main__":
    print(u"元组切片操作示例!")

    data_demo = (u"DeepTest", u"appium", u"testingunion.com", u"hello", u"python3")    

    # 读取第二个元素appium, 注意索引下标从0开始
    e = data_demo[1]
    print(e)    

    # 读取倒数第二个hello
    e = data_demo[-2]
    print(e)    
    
    # 切片,截取从第2个元素开始后的所有元素
    e = data_demo[1:]
    print(e)    

    # 切片,截取第2-4个元素
    e = data_demo[1:4]
    print(e)

执行结果如下

元组切片操作示例
appium
hello
('appium', 'testingunion.com', 'hello', 'python3')
('appium', 'testingunion.com', 'hello')

对上面的代码小结一下:

  • 元组可以通过下标索引的方式来读取元素
  • 元组可以通过负数下标索引的方式反向读取元素
  • 元组可以通过 起始:终止 方式截取一段元素

合并

元组的元素的特性:不可修改。但我们可以对元组进行合并或是连接生成新的元组,代码示例如下:

# -*- coding:utf-8 -*-

__author__ = u'苦叶子'

if __name__ == "__main__":
    print(u"元组合并或连接操作示例!")
    tup1 = (u"DeepTest", u"appium")
    tup2 = (u"testingunion.com", u"hello", u"python3")   
 
    # 合并成新的元组
    tup3 = tup1 + tup2  
   
    # 打印看看效果
    print(tup1)
    print(tup2)
    print(tup3)

删除

元组的元素的特性:不可修改。意味着我们不可以删除单个元素,但可以把元组给删除,示例如下:

# -*- coding:utf-8 -*-

__author__ = u'苦叶子'

if __name__ == "__main__":
    print(u"元组合并或连接操作示例!")
    tup1 = (u"DeepTest", u"appium")
    print(tup1)    

    # 删除元组
    del tup1
    print(tup1)

执行上述代码会出什么情况呢?

会提示输出异常信息,提时:

NameError: name 'tup1' is not defined

运算

元组和字符串一样可以使用+或*进行运算,经过运算后可以生成一个新的元组。

# -*- coding:utf-8 -*-

__author__ = u'苦叶子'

if __name__ == "__main__":
    print(u"元组运算示例")
    tup1 = (u"DeepTest", u"开源优测")
    tup2 = (1, 2, 3, 4)    
    
    # 计算元组长度
    print(len(tup1))    

    #  元组连接
    tup3 = tup1 + tup2
    print(tup3)    
    
    # 元组复制
    tup4 = tup1 * 2
    print(tup4)    
    
    # 判断元素是否在元组中, 是则返回True, 否则返回
    result = 5 in tup2
    print(result)    
    
    # 遍历元组
    for t in tup2:
        print(t)

列表转元组

使用内置函数tuple将list转换成元组,代码示例如下:

# -*- coding:utf-8 -*-

__author__ = u'苦叶子'

if __name__ == "__main__":    
    # 将list转换成元组
    list_demo = [1, 2, 3, 4, 5, 6]
    tuple1 = tuple(list_demo)   
     
    # 打印转换后的元组
    print(tuple1)

原文发布于微信公众号 - 开源优测(DeepTest)

原文发表时间:2017-05-31

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏前端儿

PHP--正则表达式和样式匹配--小记

POSIX 风格的,有些低版本软件支持,目前高版本的有些已经废弃不用了,比如 zend studio 的较新版本.

1811
来自专栏深度学习思考者

C++常见问题(二)——虚函数、类与结构、引用与值传递

一 文件输入输出的方式 C++定义了ifsteam、ofstream和fstream 3种类型以用来支持文件的输入输出。 二 异常 异常就是程序运行时出...

1946
来自专栏java一日一条

JavaScript 中 this 的使用技巧总结

在 js 中,this 这个上下文总是变化莫测,很多时候出现 bug 总是一头雾水,其实,只要分清楚不同的情况下如何执行就 ok 了。

833
来自专栏coder修行路

go基础之--函数和map

在整理函数之前先整理一下关于指针 指针 普通类型变量存的就是值,也叫值类型。指针类型存的是地址,即指针的值是一个变量的地址。 一个指针指示值所保存的位置,不是所...

2977
来自专栏Golang语言社区

Go 语言指针

Go 语言中指针是很容易学习的,Go 语言中使用指针可以更简单的执行一些任务。 接下来让我们来一步步学习 Go 语言指针。 我们都知道,变量是一种使用方便的占位...

3649
来自专栏武军超python专栏

2018-7月19日系统模块字符串操作

每天遇到的新单词: recursion   n:递归 objece      n:对象 maximum     adj:最大值 exceed      ...

1383
来自专栏前端儿

JavaScript 的数据类型 相关知识点

JavaScript的数据类型分为两类:原始类型(primitive type)和对象类型(object type)

852
来自专栏王磊的博客

es6分享——变量的解构赋值

变量的解构赋值:ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destructuring)。 以前的写法: var a = 1;...

2897
来自专栏Python小屋

Python元组与列表的相同点与区别

列表和元组都属于有序序列,支持使用双向索引访问其中的元素、使用内置函数len()统计元素个数、使用运算符in测试是否包含某个元素、使用count()方法统计指定...

3146
来自专栏Python研发

最全Python内置函数

判断真假,  True:真  ,  False:假,   把一个对象转换成bool值

2622

扫码关注云+社区

领取腾讯云代金券