我们在上一篇中了解了变量list(列表), 今天我们来介绍下元组。元组是由括号和逗号,组织起来的一个元素的集合。和list不同的是,它其中的元素是不能被修改的,和其他语言中的常量相类似。

需要注意的是,如果元组中只包含一个元素,那么在元组的最后需要加一个逗号,来申明他是一个元组,而不是一个被运算符括号保护起来的一个整数。

  1. names = ('Ralf', 'Rachel', 'Clark', 'Leona', 'Terry')
  2. print(names)
  3.  
  4. numbers1 = (50)
  5. print(type(numbers1))
  6.  
  7. numbers2 = (50,)
  8. print(numbers2)
  9.  
  10. #输出:
  11. #('Ralf', 'Rachel', 'Clark', 'Leona', 'Terry')
  12. #<class 'int'>
  13. #(50,)

我们可以像列表list那样使用循环来访问和遍历元组:

  1. names = ('Ralf', 'Rachel', 'Clark', 'Leona', 'Terry')
  2.  
  3. for name in names:
  4. print(name)
  5.  
  6. #输出:
  7. #Ralf
  8. #Rachel
  9. #Clark
  10. #Leona
  11. #Terry

也可以使用[:]切片的方式来访问元组:

  1. names = ('Ralf', 'Rachel', 'Clark', 'Leona', 'Terry')
  2.  
  3. print(names[1])
  4. #输出:Rachel
  5.  
  6. print(names[1:3])
  7. #输出:('Rachel', 'Clark')
  8.  
  9. print(names[:-1])
  10. #输出: ('Ralf', 'Rachel', 'Clark', 'Leona')
  11.  
  12. print(names[-1])
  13. #输出: Terry
  14.  
  15. print(names[::2])
  16. #输出: ('Ralf', 'Clark', 'Terry')

元组中的元素的值是不能被修改的, 否则会爆出系统错误:

  1. names = ('Ralf', 'Rachel', 'Clark', 'Leona', 'Terry')
  2.  
  3. names[2] = 'NewMan'
  4. #输出: TypeError: 'tuple' object does not support item assignment

但是我们可以对元组进行删除和重新定义:

  1. names = ('Ralf', 'Rachel', 'Clark', 'Leona', 'Terry')
  2. print(names)
  3. names = ('Ralf', 'Rachel', 'Clark', 'Leona')
  4. print(names)
  5. del names
  6. print(names)
  7.  
  8. #输出: ('Ralf', 'Rachel', 'Clark', 'Leona', 'Terry')
  9. #输出: ('Ralf', 'Rachel', 'Clark', 'Leona')
  10. #输出: NameError: name 'names' is not defined

多个元组可以进行合并,一个元组中也可以包含另一个元组:

  1. names1 = ('Ralf', 'Rachel', 'Clark', 'Leona', 'Terry')
  2.  
  3. names2 = ('Ralf', 'Rachel', 'Clark', 'Leona')
  4. names3 = names1 + names2
  5. print(names3)
  6.  
  7. #输出: ('Ralf', 'Rachel', 'Clark', 'Leona', 'Terry', 'Ralf', 'Rachel', 'Clark', 'Leona')
  8.  
  9. names4 = (1, 2, ('a','b'))
  10. print(names4)
  11. print(names4[2])
  12. print((names4[2])[0])
  13.  
  14. #输出: (1, 2, ('a', 'b'))
  15. #输出: ('a', 'b')
  16. #输出: a

由于元组的不可修改的相关特性,所以它不支持排序、替换、添加等操作。 只保留了计算元素个数,最大值,最小值等方法。

也正是因为这种特性,我们在做一些方法传递或者参数传递的时候,可以使用元组,保证传出去的数值,是不可以修改的,确保安全性。

Python 学习笔记6 变量-元组的更多相关文章

  1. Python 学习笔记2 变量

    Python变量的一些命名规则和指南 每种编程语言都需要变量, 这些变量的命名,我们一般会遵守一些公认的规则. 已达到方便自己,他人阅读的好处. 变量只能包含字母.数字和下划线.变量可以以字母和下划线 ...

  2. Python学习笔记----列表、元组和字典的基础操作

    文章目录 一.列表的基本操作 1.1 修改列表中的某个数据 1.2 获取某个元素的返回值(返回的是索引) 1.3 在列表中插入新的元素 1.4 删除列表中的元素 1.5 +和* 二.内置的函数和方法 ...

  3. 小甲鱼:Python学习笔记001_变量_分支_数据类型_运算符等基础

    1.下载并安装Python 3.5.0 Python是一个跨平台语言,Python从3.0的版本的语法很多不兼容2版本,官网找到最新的版本并下载:http://www.python.org 2.IDL ...

  4. Python 学习笔记6 变量-字典

    字典是python中一个十分重要的变量,他是一个可变的容器对象.通过一组key(键)和value(值)对组成一个元素. 组成形式为{'key':'value', 'key':'value'}.整个字典 ...

  5. Python 学习笔记5 变量-列表

    列表是python常用的一种变量. 是由一些列按照特定顺序排列的元素组成的.你可以创建包含字母表中的所有字母,数字.可以将任何东西都加入到列表中. 通常情况下,列表中都包含多个元素,所以建议变量的名称 ...

  6. Python 学习笔记4 变量-字符串

    Python中的字符串,我们可以简单的认为是一组用单引号,双引号,三引号包含的一组字符,数字或者特殊字符.在Python3中,所有的字符串都是Unicode字符串. 变量定义 #单引号 string1 ...

  7. Python 学习笔记3 变量-数字

    我们来具体了解下有关 number类型的变量的使用方式和含义. 在Python中的Number类型的变量包含以下几种: int: 通常我们所说的整数, 比如 1, 2 ,3 ,100, 3000 等等 ...

  8. Python学习笔记:变量

    什么是变量? 一般的理解是,变量是一个存储数据的容器 但是在python中的变量只存储数据的引用 变量的特性: 并不直接存储数据,而是引用着某个具体的数据 我们可以人为改变这个引用 定义变量 方式 变 ...

  9. python学习笔记5(元组)

    一.元组特性 1.类似列表,但不可变类型,正因如此,它可以做一个字典的key2.当处理一组对象时,这个组默认是元组类型3.所有的多对象,逗号分隔的,没有明确用符号定义的这些都默认为元组类型 >& ...

随机推荐

  1. Django之Xadmin

    零.预备知识 单例对象 方式一:__new__方法 方式二:模块导入,只要在引入的文件中实例了这个对象,不管引道哪里,这个对象都指向同一个内存空间 class My_singleton(object) ...

  2. PLSQL安装、PLSQL汉化、激活

    前言 新版PLSQL连接Oracle时,不需要Oracle客户端为32位了,安装完Oracle后也不需要在单独安装客户端. 一.准备工作 1.点击下载PLSQL,本次安装的PLSQL版本为12.0.7 ...

  3. web富文本编辑器收集

    1.UEditor 百度的. 优点:插件多,基本满足各种需求,类似贴吧中的回复界面. 缺点:不再维护,文档极少,使用并不普遍,图片只能上传到本地服务器,如果需要上传到其他服务器需要改动源码,较为难办, ...

  4. Python——python读取html实战,作业7(python programming)

    查看源码,观察html结构 # -*- coding: utf-8 -*- from lxml.html import parse from urllib.request import urlopen ...

  5. java基础学习总结——面向对象1

    目录 一.面向过程的思想和面向对象的思想 二.简单理解面向对象 三.面向对象的设计思想 四.对象和类的概念 五.如何抽象出一个类? 六.类(对象)之间的关系 七.Java与面向对象 八.为什么使用面向 ...

  6. springboot集成mybatis源码分析-mybatis的mapper执行查询时的流程(三)

    例: package com.example.demo.service; import com.example.demo.dao.UserDao; import com.example.demo.do ...

  7. iOS开发之#impor与#include的区别

    #import比起#include的好处就是不会引起交叉编译 在 Objective-C中,#import 被当成 #include 指令的改良版本来使用.除此之外,#import 确定一个文件只能被 ...

  8. 寻找符合条件的最短子字符串——SLIDING WINDOW

    简介 用一个可伸缩的窗口遍历字符串,时间复杂度大致为O(n).适用于“寻找符合某条件的最小子字符串”题型. 题目 链接 求某字符串T中含有某字符串S的所有字符的最小子字符串.如果不存在则返回" ...

  9. Windows上安装nodejs版本管理器nvm

    nvm最新的下载地址 Node版本管理器--nvm,可以运行在多种操作系统上.nvm for windows 是使用go语言编写的软件. 我电脑使用的是Windows操作系统,所以我要记录下在此操作系 ...

  10. codeforces 493 div1 e

    题解: 和这件zhcs的那题有点像 第一种做法是考虑i,i+1之间的贡献 这样子就是矩形加减然后求矩形最小值个数 另一种做法是我们从左向右维护mx-nx-r+l 跟之前那题一样我们知道这个的最小值为0 ...