定义和初始化

#tuple()          使用工厂函数tuple定义一个空元组

#()               使用圆括号定义一个空元组

#(1,2,3)          使用圆括号定义有初始值的元组

#tuple(可迭代对象)  把可迭代对象转换为一个元组

In [1]: tup=tuple();print(tup)
() In [2]: tup=();print(tup)
() In [3]: tup=(1,2,3);print(tup)
(1, 2, 3) In [5]: tup=tuple(range(0,2));print(tup)
(0, 1) #要定义一个只有1个元素的tuple,如果这么定义:
In [30]: tup=(1)
In [31]: type(tup)
Out[31]: int
#定义的不是tuple,是1这个数!这是因为括号()既可以表示tuple,又可以表示数学公式中的小括号,这就产生了歧义,因此,Python规定,这种情况下,按小括号进行计算,计算结果自然是1。
#所以只有1个元素的tuple定义时必须加一个逗号,,来消除歧义
In [32]: tup=(1,)
In [33]: type(tup)
Out[33]: tuple
In [34]: print(tup)
(1,)
# Python在显示只有1个元素的tuple时,也会加一个逗号,,以免误解成数学计算意义上的括号

元组是不可修改的

访问元组元素

1. 通过索引访问元素

In [7]: t=tuple(range(0,7));print(t)
(0, 1, 2, 3, 4, 5, 6) In [8]: t[1]
Out[8]: 1 In [9]: t[-1]
Out[9]: 6

2. index()

In [21]: help(t.index)
index(...) method of builtins.tuple instance
T.index(value, [start, [stop]]) -> integer -- return first index of value.
Raises ValueError if the value is not present. In [16]: print(t)
(1, 2, 3, 2, 6) In [17]: t.index(2)
Out[17]: 1 In [20]: t.index(2,1,3)
Out[20]: 1

3. count()

In [21]: help(t.count)
count(...) method of builtins.tuple instance
T.count(value) -> integer -- return number of occurrences of value In [22]: t.count(2)
Out[22]: 2

命名元组 nametuple

# namedtuple('名称', [属性list]):
# namedtuple是一个函数,它用来创建一个自定义的tuple对象,并且规定了tuple元素的个数,并可以用属性而不是索引来引用tuple的某个元素。
# 这样一来,我们用namedtuple可以很方便地定义一种数据类型,它具备tuple的不变性,又可以根据属性来引用,使用十分方便。 # 例如我们可以使用namedtuple来表示坐标:
In [35]: from collections import namedtuple In [36]: Circle=namedtuple('Circle',['x','y','z']) In [37]: C=Circle(2,2,3) In [38]: print(C.x);print(C.z)
2
3 # 创建的Circle对象是tuple的一种子类
In [39]: isinstance(C,Circle)
Out[39]: True In [40]: isinstance(C,tuple)
Out[40]: True # 所以C完全可以当做元组去使用
In [46]: C.index(2)
Out[46]: 0 In [47]: print(C[1])
2 In [48]: C.count(2)
Out[48]: 2
#列表和元组的异同?
#<相同点>
列表和元组都是容器,可以包含任意类型的元素(甚至是包含一个序列)
列表和元素也都包含元素的顺序
#<差别>
列表是可变的,元组是不可变的
所以通常,在你有一些不确定长度的相同类型队列时使用列表
在已知元素数量的情况下用元组

[PY3]——内置数据结构(2)——元组及其常用操作的更多相关文章

  1. [PY3]——内置数据结构(7)——字典及其常用操作

    字典及其常用操作Xmind图 关于字典 字典是一种key-value结构 字典是无序的 字典的定义 # {}大括号可以直接定义一个空字典 In [1]: d={};type(d) Out[1]: di ...

  2. [PY3]——内置数据结构(6)——集合及其常用操作

    集合及其常用操作Xmind图          集合的定义 # set( ) # {0,1,2} //注意不能用空的大括号来定义集合 # set(可迭代对象) In [1]: s=set();type ...

  3. [PY3]——内置数据结构(1)——列表及其常用操作

    列表及其常用操作_xmind图         about列表 列表是一个序列,用于顺序存储数据 列表分为两种:ArrayList(用数组实现).LinkedList(用链表实现) 定义与初始化 #l ...

  4. [PY3]——内置数据结构(3)——字符串及其常用操作

    字符串及其常用操作xmind图 字符串的定义 1. 单引号/双引号 In [1]: s1='hello world' In [2]: s1="hello world" 2. 三对单 ...

  5. [PY3]——内置数据结构(9)——线性结构与切片/命名切片slice()

    线性结构的总结 列表list  元组tuple  字符串str  bytes  bytearray的共同点: 都是顺序存储.顺序访问的: 都是可迭代对象: 都可以通过索引访问 线性结构的特征: 可迭代 ...

  6. [PY3]——内置数据结构(8)——解构与封装

    ### 解构的理解与用法 ### 解构是python很有特色的一个功能,被很多语言借鉴(例如ES6) # 元素按照顺序赋值给变量 In [31]: lst=list(range(5)) In [32] ...

  7. Python内置数据结构之元组tuple

    1. Python序列之元组:不可修改的序列 元组其实跟列表差不多,也是存一组数,只不是它一旦创建,便不能像列表式的增删改,只能查,切片,所以元组又叫只读列表. 元组用圆括号括起(这是通常采用的做法) ...

  8. [PY3]——内置数据结构(5)——字符串编码

    py2和py3中关于字符串的最大区别? python2中只有 unicode类型 而python3中有 string bytes两种类型 关于string和bytes的区分? 1.str是文本序列.b ...

  9. [PY3]——内置数据结构(4)——字符串格式化(format)

    字符串格式化是拼接字符串的一种手段 join和+拼接字符串的方法,难以控制格式 printf style 字符串格式化 这种方法是从c语言继承过来的 # 待格式化的字符串:一个字符串存在占位符 In ...

随机推荐

  1. Azure静态公网ip自助反解

    Linux下安装az工具,并登陆 az login 执行 az network public-ip update --resource-group ip所在资源组名称 --name ip对应资源名称 ...

  2. LINQ to Entities 基于方法的查询语法

    1.投影: Select 与 SelectMany SelectMany操作符提供了将多个from子句组合起来的功能,相当于数据库中的多表连接查询,它将每个对象的结果合并成单个序列. 与 select ...

  3. 在一般处理程序里面读写session

    1.引用命名空间 using System.Web.SessionState; 2.继承IRequiresSessionState接口 3.利用httpcontext类读写即可 context.ses ...

  4. crond脚本执行并发冲突问题

    在计划任务中,偶尔会看到重复执行的情况: 例如我们公司的计划任务举例: */ * * * * root cd /opt/xxxx/test_S1/html/xxxx/admin; php index. ...

  5. 为解决Samba windows 无法访问 尝试过的方法

    1, 通过   vi /etc/sysconfig/selinux 把 SELINUX=enforcing   修改为SELINUX= disable 退出保存,并且重启.(设置了) 2, 把wind ...

  6. jmeter服务器监控插件指标简单说明

    以下是下载了服务器监控插件的各个组件的功能介绍,有助于以后jmeter的性能测试 1.jp@gc - Actiive Threads Over Time:不同时间的活动用户数量展示(图表) 当前的时间 ...

  7. 人工鱼群算法超详细解析附带JAVA代码

    01 前言 本着学习的心态,还是想把这个算法写一写,给大家科普一下的吧. 02 人工鱼群算法 2.1 定义 人工鱼群算法为山东大学副教授李晓磊2002年从鱼找寻食物的现象中表现的种种移动寻觅特点中得到 ...

  8. 线索二叉树的理解和实现(Java)

    线索二叉树的基本概念 我们按某种方式对二叉树进行遍历,将二叉树中所有节点排序为一个线性序列,在该序列中,除第一个结点外每个结点有且仅有一个直接前驱结点:除最后一个结点外每一个结点有且仅有一个直接后继结 ...

  9. canvas+js+面向对象的矩形封装

    效果: Rect.js /* 1. 封装属性: x, y w , h, fillStyle strokeStyle rotation opacity 2.render */ function Rect ...

  10. js01--简介、注释、数组、对象、null与undefined

    javascript简介:js,轻量级的脚本语言,插入HTML页面中,用来实现网页的动态交换. 1.js的使用: 写入HTML输出:document.write("<p>This ...