元组与列表都是容器,两个的区别在于:

1.元组使用的是小括号,列表使用的是方括号

2.元组一旦定义不可修改,而列表是可以随意变更

创建元组

元组的创建与列表大同小异,逗号在元组中充当了元组的灵魂,创建元组时你可以不带上括号,但是必须带上逗号

# 创建空元组
tuple1 = tuple()
print(tuple1)
# 创建一个元素的元组,后面必须带上英文逗号(,)
tuple2 = ("fruit",)
print(tuple2)
# 创建元组时不带括号
tuple3 = "fruit", "pear", "apple", "banana"
print(tuple3)

打印结果:
"D:\Program Files\Python\Python37-32\python.exe" D:/demo/tuple_1.py
()
('fruit',)
('fruit', 'pear', 'apple', 'banana')

通过tuple()方法传入可迭代对象创建元组

# 通过tuple()方法将list转为tuple
tuple4 = tuple(["egg", "rice", "bacon"])
print(tuple4)
# 通过tuple()方法传入range对象
tuple5 = tuple(range(10))
print(tuple5)
# 通过tuple()方法传入dict
tuple6 = tuple({"rice": "米", "bacon": "培根"})
print(tuple6)
# 通过tuple()方法传入str
tuple7 = tuple("hello")
print(tuple7)
打印结果:
"D:\Program Files\Python\Python37-32\python.exe" D:/demo/tuple_1.py
('egg', 'rice', 'bacon')
(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
('rice', 'bacon')
('h', 'e', 'l', 'l', 'o')

元组的读取

元组的读取与列表类似,通过下标读取,下标索引从0开始,下标不存在时抛出越界异常

# 读取下标为2的元素
tuple_1 = tuple3[2]
print(tuple_1)
# 尝试读取下标不存在的元素
tuple_2 = tuple3[5]
print(tuple_2)
打印结果:
"D:\Program Files\Python\Python37-32\python.exe" D:/demo/tuple_1.py
Traceback (most recent call last):
File "D:/demo/tuple_1.py", line 15, in <module>
tuple_2 = tuple3[5]
IndexError: tuple index out of range
apple

使用for语句遍历读取

for tuple_ in tuple3:
print(tuple_)
打印结果:
"D:\Program Files\Python\Python37-32\python.exe" D:/demo/tuple_1.py
fruit
pear
apple
banana

元组切片

元组也可以进行切片操作,与列表一样,可参考列表切片操作,此处不再赘述

print(tuple3)
# 截取整个元组
slice1 = tuple3[:]
# 截取偶数位的所有元素
slice2 = tuple3[::2]
# 反向截取
slice3 = tuple3[::-1]
print(slice1)
print(slice2)
print(slice3)
打印结果:
"D:\Program Files\Python\Python37-32\python.exe" D:/demo/tuple_1.py
('fruit', 'pear', 'apple', 'banana')
('fruit', 'pear', 'apple', 'banana')
('fruit', 'apple')
('banana', 'apple', 'pear', 'fruit')

元组删除

# 元组中的元素不可编辑,只能删除整个元组
del tuple3
print(tuple3)
打印结果:
"D:\Program Files\Python\Python37-32\python.exe" D:/demo/tuple_1.py
Traceback (most recent call last):
File "D:/demo/tuple_1.py", line 47, in <module>
print(tuple3)
NameError: name 'tuple3' is not defined

元组中其他常用方法

count()用于计算某个元素在元组中出现的次数

count_ = tuple3.count("rice")
print(count_)
打印结果:
"D:\Program Files\Python\Python37-32\python.exe" D:/demo/tuple_1.py
0

统计字符出现的个数或元组内出现的元素次数等也可以用 Counter方法, Counter 是一个 dict 的子类,用于计数可哈希对象

from collections import Counter
counter_ = Counter(tuple3)
print(counter_)
打印结果:
"D:\Program Files\Python\Python37-32\python.exe" D:/demo/tuple_1.py
Counter({'fruit': 1, 'pear': 1, 'apple': 1, 'banana': 1})

tuple 中的index()方法同list中的index()方法,用来查找某个元素所在的索引位置,当元组中有多个相同的元素时,默认返回第一个匹配的元素索引位置,若找不到则抛出异常

格式:[obj, start, end]

obj :需要查找的对象

start: 起始查找位置,不填写时默认为0

end: 结束查找位置,不包含end,不填写时默认为元组长度

index_ = tuple3.index("pear", 0, 3)
print(index_)
打印结果:
"D:\Program Files\Python\Python37-32\python.exe" D:/demo/tuple_1.py
1

python之元组(tuple)知识点的更多相关文章

  1. python中元组tuple

    python中列表(list)和元组(tuple)有很多相似的地方,它们都是容器,由一系列的对象构成,都可以包含任意类型的元素,甚至是一个序列.   list和tuple的不同首先体现在写法上: li ...

  2. python基础——元组(tuple)

    Python的元组与列表类似,不同之处在于元组的元素不能修改. 元组使用小括号,列表使用方括号. 元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可. tuple1 = () tuple2 = ...

  3. python基础-元组(tuple)及内置方法

    元组-tuple 用途:用于存储多个不同类型的值,但是不能存储可变类型数据 定义方法:用小括号存储数据,数据与数据之间通过逗号分隔,元组中的值不能改变. 注意: 1.定义元组时,如果里面只有一个值,在 ...

  4. Python 创建元组tuple

    创建tupletuple是另一种有序的列表,中文翻译为“ 元组 ”.tuple 和 list 非常类似,但是,tuple一旦创建完毕,就不能修改了.同样是表示班里同学的名称,用tuple表示如下:&g ...

  5. python入门 元组tuple (三)

    什么if while语句了 列表字典都太简单了 ,我直接跳过了, 开始写tuple了 增 元组格式是写在括号里,注意与列表(写在中括号里)的区别 tup1 = ('math', 'beijing', ...

  6. python 数据结构-元组tuple

    tuple0=() #空 tuple1="wo", #元组中包括单个元素用, tuple2="monkey","cat","chi ...

  7. Python - 多元组(tuple)

    声明一个多元组 (4, 5, 6) 这是列表 [4, 5, 6] 与列表不一样在于多元组使用() 来组织元素而list使用方括号[] 而且多元组不能更改,用于当你的数组不想像list一样会被更改时就使 ...

  8. Python从零开始——元组tuple

    一:元组知识内容 二:元组的不可变性 三:元组创建 四:元组操作

  9. python day4 元组/字典/集合类知识点补充

    目录 python day4 元组/字典/集合类知识点补充 1. 元组tuple知识点补充 2. 字典dict的知识点补充 3. 基本数据类型set 4. 三元运算,又叫三目运算 5. 深复制浅复制 ...

  10. Python—元组tuple

    列表的知识其实就类似于c语言中的数组,可插入.修改.list=[a,b,c,d] 而元组tuple,一旦初始化即不可修改.好处与绝对安全. 定义一个空的元组:t=() 定义只有一个元素的元组:t=(1 ...

随机推荐

  1. 记录一次Bitbucket鉴权的坑

    目录 发生了什么 什么原因 如何解决 总结 发生了什么 今天首次在Fedora上使用git,因为没有小王八(TortoiseGit)帮助,其过程异常焦灼-- 反正经过一系列折腾,我在本地新建了一个项目 ...

  2. PAT (Basic Level) Practice 1012 数字分类 分数 20

    给定一系列正整数,请按要求对数字进行分类,并输出以下 5 个数字: A1​ = 能被 5 整除的数字中所有偶数的和: A2​ = 将被 5 除后余 1 的数字按给出顺序进行交错求和,即计算 n1​−n ...

  3. P3834 【模板】可持久化线段树 2

    P3834 主席树模板,求区间第k小. 1 #include <bits/stdc++.h> 2 using namespace std; 3 #define lc tr[i].ch[0] ...

  4. 无法创建“Sunlight.Silverlight.Dcs.Web.PartsSupplier”类型的常量值。此上下文仅支持基元类型或枚举类型问题

    今天写代码遇到一个问题,            const string SCODE = "123";            var suppliers = PartsSuppli ...

  5. Linux-->vi和vim编辑器的基本操作

    vim编辑器介绍 vi或者vim就是对linux下的文本进行编辑的一种编辑器比如说a.cpp文件这种 Linux会内置vi文本编辑器 Vim可以简单的认为vi的增强版 Linux是区分大小写的! 用法 ...

  6. Linux实战笔记_CentOS7_yum相关配置

    配置yum源优先级 配置优先级 yum -y install yum-plugin-priorities.noarch vi /etc/yum.repos.d/localISO.repo priori ...

  7. 在vue中引入elementui

    文章目录 1.下载安装 2.在main.js中引入 3.可以根据封装好的组件自行调用 官网地址:https://element.eleme.cn/#/zh-CN 1.下载安装 npm i elemen ...

  8. spring boot+vue前后端项目的分离(我的第一个前后端分离项目)

    文章目录 1.前端vue的搭建 2.后端项目的构建 pom文件中引入的jar包 yml文件用来配置连接数据库和端口的设置 application.property进行一些整合 controller层( ...

  9. 你所不知道的 vscode,汇集历史版本中你可能不知道的新特性

    壹 ❀ 引 vscode可以毫不夸张的说是大部分前端同学吃饭的工具(webstorm除外),随着时间的推移vscode其实也在不断推出了各种新功能新特性,但vscode并不会默认就实装这些新功能,我相 ...

  10. Agda学习笔记1

    目录 Agda学习笔记1 快捷键 refl Natural Number 自然数集合 operations rewrite cong 加法结合律 加法交换律 乘法分配律 比较大小 衍生的一些证明 be ...