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

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. C#-12 转换

    一 什么是转换 转换是接受一个类型的值并使用它作为另一个类型的等价值的过程. 下列代码演示了将1个short类型的值强制转换成byte类型的值. short var1 = 5; byte var2 = ...

  2. C++实现双向RRT算法

    C++实现双向RRT算法 背景介绍 RRT(Rapidly-exploring Random Trees)是Steven M. LaValle和James J. Kuffner Jr.提出的一种通过所 ...

  3. NOIP 2013 提高组 洛谷P1967 货车运输 (Kruskal重构树)

    题目: A 国有 nn 座城市,编号从 11 到 nn,城市之间有 mm 条双向道路.每一条道路对车辆都有重量限制,简称限重. 现在有 qq 辆货车在运输货物, 司机们想知道每辆车在不超过车辆限重的情 ...

  4. C++编程范式(函数)

    1 // 2 // main.cpp 3 // test 4 // 5 // Created by Shaojun on 30/5/2020. 6 // Copyright 2020 Shaojun. ...

  5. SpringBoot后端接口项目

    创建SpringBoot项目 项目目录 实体类 点击查看代码 package com.bai.entity; import com.baomidou.mybatisplus.annotation.Id ...

  6. 齐博X1-新建一个空模板并在后台选择

    本节实际操作建立一个空模板,并且让后台识别,选择该风格 先在index_style中建立一个目录,命名mystyle并上传我们在mystyle目录中建立一个info.php文件,代码如下:上传后,后台 ...

  7. P 算法与 K 算法

    P 算法与 K 算法 作者:Grey 原文地址: 博客园:P 算法与 K 算法 CSDN:P 算法与 K 算法 说明 P 算法和 K 算法主要用来解决最小生成树问题,即:不破坏连通性删掉某些边,使得整 ...

  8. 基于YOLO和PSPNet的目标检测与语义分割系统(python)

    基于YOLO和PSPNet的目标检测与语义分割系统 源代码地址 概述 这是我的本科毕业设计 它的主要功能是通过YOLOv5进行目标检测,并使用PSPNet进行语义分割. 本项目YOLOv5部分代码基于 ...

  9. 京东云开发者| Redis数据结构(二)-List、Hash、Set及Sorted Set的结构实现

    1 引言 之前介绍了Redis的数据存储及String类型的实现,接下来再来看下List.Hash.Set及Sorted Set的数据结构的实现. 2 List List类型通常被用作异步消息队列.文 ...

  10. CF39H

    前言 谁来给我讲讲九九乘法表啊. 以上菲克向. \(\sf{Solution}\) 看题上来就是数据范围 \(2\leq k\leq 10\) ,显然打表可以轻松水过,数据这么小,手算是没问题的啦. ...