python 3.6.5

元组的特性和定义

与列表类型 只不过 [  ] 改成了()

特性:

  1.不可变(元组本身不可变,但是可以存可变类型的element){猜测因为可变element的地址不可变而存在元组里面也只是地址而已:例如:list dict 等}

  2.可存放多个值

  3.按照从左到右的顺序定义元组元素,下表从0,开始顺序访问。有序

  #解释为什么要有不可变的元组出现呢?

创建:

  ages=tuple()

  ages=()

  ages=1, #注意以逗号隔开,默认为元组

  ages=( 1 , )#注意,元组中只包含一个元素时,需要在元素后面添加逗号来消除歧义

  ages=(11,22,33,44)

  ages=tuple((11,22,33,44))

tuple_list=(v for v in range(1,8))#生成器表达式print(tuple_list,type(tuple_list))tup=tuple(tuple_list)print(tup,type(tup))>>:<generator object <genexpr> at 0x0000000001EC18E0> <class 'generator'>>>:(1, 2, 3, 4, 5, 6, 7) <class 'tuple'>

常用操作:

  索引 #正向取 和 反向取 :只能取

  循环 for in 可迭代循环

  长度 len()

  成员运算 in 和 not in

  切片:顾头不顾尾,步长 ,反向步长

  元组运算符 + 和 *   但是得到的是新tuple

  统计个数:tuple.count(' 出现了几次')#没有返回0

  返回索引:tuple.index('要查找的element') #找不到会报错

  

和列表 差不多 可以去看列表相关操作或者字符串https://www.cnblogs.com/yanxiatingyu/p/9277115.html

tup = (1, 2, ['a', 'b', 'c'], 'd', 'e', ('gu', 'tang'))

print ("tup[0] =",tup[0]) # 打印索引为0的元素
#输出结果
tup[0] = 1

print ("tup[1:] =",tup[1:]) #从索引为1到最后一个元素
#输出结果
tup[1:] = (2, ['a', 'b', 'c'], 'd', 'e', ('gu', 'tang'))

print ("tup[:-1] =",tup[:-1]) # 到倒第二个元素但不包含第二个
#输出结果
tup[:-1] = (1, 2, ['a', 'b', 'c'], 'd', 'e')

print ("tup[1::1] =",tup[1::1]) # 等价于tup[1:] 从左到右一个个去取,步长为1
#输出结果
tup[1::1] = (2, ['a', 'b', 'c'], 'd', 'e', ('gu', 'tang'))

print ("tup[1::2] =",tup[1::2]) #从左到右隔一个去取 步长为2
#输出结果
tup[1::2] = (2, 'd', ('gu', 'tang'))

print ("tup[::-1]",tup[::-1]) # 反向输出 步长为1
#输出结果
tup[::-1] (('gu', 'tang'), 'e', 'd', ['a', 'b', 'c'], 2, 1)

print ("tup[::-2]",tup[::-2]) # 反向输出 步长为2(隔一个去取))
#输出结果
tup[::-2] (('gu', 'tang'), 'd', 2)

八、元组内置函数Python元组包含了以下内置函数1、cmp(tuple1, tuple2):比较两个元组元素。2、len(tuple):计算元组元素个数。3、max(tuple):返回元组中元素最大值。4、min(tuple):返回元组中元素最小值。5、tuple(seq):将列表转换为元组

关于元组不可变
lis = [1, 2, 3]tup = (1, 2, 3, 4, lis)print(tup)# (1, 2, 3, 4, [1, 2, 3])tup[4][1] = '元素改变了'print(tup)# (1, 2, 3, 4, [1, '元素改变了', 3])
表面上看,tuple的元素确实变了,但其实变的不是tuple的元素,而是list的元素。tuple一开始指向的list并没有改成别的list,所以,tuple所谓的“不变”是说,tuple的每个元素,指向永远不变。即指向'a',就不能改成指向'b',指向一个list,就不能改成指向其他对象,但指向的这个list本身是可变的!理解了“指向不变”后,要创建一个内容也不变的tuple怎么做?那就必须保证tuple的每一个元素本身也不能变。

python 数据类型 之 tuple 元组的更多相关文章

  1. Python数据类型详解——元组

    Python数据类型详解--元组 有时候我们的列表数据不想被别人修改时该怎么办? 此时,就可以使用元组来存放,元祖又称为只读列表,不能修改 定义方式:与列表类似,将列表的[]换成()即可. 特性: 1 ...

  2. python入门到放弃-基本数据类型之tuple元组

    #概述 元组俗称不可变的列表,又称只读列表,是python的基本数据类型之一, 用()小括号表示,里面使用,逗号隔开 元组里面可以放任何的数据类型的数据,查询可以,循环可以,但是就是不能修改 #先来看 ...

  3. python数据类型之tuple(元组)

    tuple元组 关注公众号"轻松学编程"了解更多. 1.概述 本质上是一种有序的集合,和列表非常的相似,列表使用[]表示,元组使用**()**表示. 特点:一旦初始化,就不能发生改 ...

  4. 【Python】(六)Python数据类型-列表和元组,九浅一深,用得到

    您好,我是码农飞哥,感谢您阅读本文,欢迎一键三连哦. 本文分十个章节介绍数据类型中的列表(list)和元组(tuple),从使用说到底层实现,包您满意 干货满满,建议收藏,需要用到时常看看. 小伙伴们 ...

  5. python开发基础(二)运算符以及数据类型之tuple(元组)

    # encoding: utf-8 # module builtins # from (built-in) # by generator 1.147 """ Built- ...

  6. python数据类型:序列(字符串,元组,列表,字典)

    序列通常有2个特点: 1,可以根据索引取值 2,可以切片操作 字符串,元组,列表,字典,都可以看做是序列类型 我的操作环境:Ubuntu16.04+python2.7 一.字符串类型 >按索引获 ...

  7. Python常见数据结构-Tuple元组

    Python Tuple基本特点 元组与列表类似,不同之处在于元组的元素不能修改. 与字符串和列表一样,可以根据下标进行切片索引. 元组使用小括号,单一元素的元组定义是必须加一个逗号. Python ...

  8. python数据类型——列表和元组类型

    列表类型(list) 定义一个列表类型很简单: l = ['a','b','c','d','e','f'] 变量l即为列表类型,可以用type方法查看: print(type(l)) 列表的增删改查 ...

  9. Python数据类型的内置函数之tuple(元组),dict(字典),set(集合)

    Python数据类型内置函数 - str(字符串) - list(列表) - tuple(元组) - dict(字典) - set(收集) tuple(元组)的操作 - (count)统计元组中元素出 ...

随机推荐

  1. react设置innerHTML

    <!DOCTYPE html> <html> <head> <meta content="text/html; charset=utf-8" ...

  2. mysql 查询上个月某一天

    本文地址:http://www.cnblogs.com/jying/p/8877065.html 需求:获取上个月15号的日期 网上一搜一大堆粘贴复制的大坑:(如下是查询上个月最后一天,可是我要的不一 ...

  3. SQL调用C# dll(第一中DLL,没使用强名称密匙,默认是 safe)

    https://msdn.microsoft.com/zh-cn/library/ms345106(es-es).aspx 1.新建项目名称SQLDllTest,类代码如下,没有用Using引用其他类 ...

  4. 学JS的心路历程-JS支持面向对象?(二)

    昨天讲了面向对象的继承,今天我们来谈谈多态和封装吧! 多态polymorphism 抽象讲法解释,就是使用单一界面操作多种型态的物件 继承父类别,定义与父类别中相同的方法,但实作内容不同,称为复写(o ...

  5. Linux基本操作指令

    Linux操作指令 到达当前用户目录:cd ~ 获得管理员权限执行:sudo 解压缩:tar -zxf XXX.tgz 安装包:dpkg -i XXX.deb 通过链接下载文件:wget  http: ...

  6. 安装 protoc 的各种坑

    首先下载 protoc 2.6.1   https://github.com/google/protobuf/releases/download/v2.6.1/protobuf-2.6.1.tar.g ...

  7. cgi调用linux系统命令

    1.例如:建一个目录:system("mkdir yourdir").(1)首先:要用root用户如果cgi中要用root用户,则必须在boa.conf文件中配置,将User no ...

  8. centos 6.x系统升级glibc库至2.15版本的快速解决办法

    CentOS 6.x系统升级glibc库至2.15版本的快速解决办法  1.先确保相关软件包已经安装 yum install -y glibc yum install -y glibc-common ...

  9. linux重新安装python

    第一步:下载python2.7  wget https://www.Python.org/ftp/python/2.7.12/Python-2.7.12.tar.xz 第二步: 解压刚刚下载的压缩包 ...

  10. Cisco & H3C 交换机 DHCP 中继

    个人理解:其实在核心交换上配置dhcp 中继也就是短短的几条命令,主要是注意细节,具体配置如下,希望能帮到大家: DHCP服务器IP:192.168.1.100 CISCO: 第一步:开启交换机的dh ...