【深度学习】 Python 和 NumPy 系列教程(四):Python容器:2、元组tuple详解(初始化、索引和切片、元组特性、常用操作、拆包、遍历)

news/2024/5/9 7:54:24/文章来源:https://blog.csdn.net/m0_63834988/article/details/132777307

目录

一、前言

二、实验环境

三、Python容器(Containers)

0、容器介绍

1、列表(List)

2、元组(Tuple)

1. 初始化

a. 使用小括号()

b. 省略小括号

c. tuple() 函数

2. 访问元组元素

a. 索引

b. 切片

3. 元组的特性

a. 不可变

b. 包含不同类型

c. 可嵌套

4. 元组的常用操作

a. 元组长度

b. 元素计数

c. 元组拼接

d. 元组重复

e. 检查元素是否存在于元组中

5. 拆包

6. 遍历

a. for 循环

b. enumerate()函数


一、前言

        Python是一种高级编程语言,由Guido van Rossum于1991年创建。它以简洁、易读的语法而闻名,并且具有强大的功能和广泛的应用领域。Python具有丰富的标准库和第三方库,可以用于开发各种类型的应用程序,包括Web开发、数据分析、人工智能、科学计算、自动化脚本等。

        Python本身是一种伟大的通用编程语言,在一些流行的库(numpy,scipy,matplotlib)的帮助下,成为了科学计算的强大环境。本系列将介绍Python编程语言和使用Python进行科学计算的方法,主要包含以下内容:

  • Python:基本数据类型、容器(列表、元组、集合、字典)、函数、类
  • Numpy:数组、数组索引、数据类型、数组数学、广播
  • Matplotlib:绘图,子图,图像
  • IPython:创建笔记本,典型工作流程

二、实验环境

        Python 3.7

        运行下述命令检查Python版本

 python --version 

三、Python容器(Containers)

0、容器介绍

        Python中的容器是用于存储和组织数据的对象。常见的容器包括列表(List)、元组(Tuple)、集合(Set)和字典(Dictionary)。

  • 列表是有序的可变容器,可以包含不同类型的元素,使用方括号([])来创建。
my_list = [1, 2, 3, 'a', 'b', 'c']
  • 元组是有序的不可变容器,也可以包含不同类型的元素,使用圆括号(())来创建。
my_tuple = (1, 2, 3, 'a', 'b', 'c')
  • 集合是无序且不重复的容器,用于存储唯一的元素,使用大括号({})或者set()函数来创建。
my_set = {1, 2, 3, 'a', 'b', 'c'}
  •  字典是无序的键值对容器,用于存储具有唯一键的值,使用花括号({})或者dict()函数来创建。
my_dict = {'name': 'Alice', 'age': 25, 'city': 'New York'}

        这些容器都提供了不同的方法和操作,用于对数据进行存储、访问和处理。可以根据具体的需求选择适合的容器类型。

1、列表(List)

【深度学习】 Python 和 NumPy 系列教程(三):Python容器:1、列表List详解(初始化、索引、切片、更新、删除、常用函数、拆包、遍历)_QomolangmaH的博客-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/m0_63834988/article/details/132768246?spm=1001.2014.3001.5501

2、元组(Tuple)

        元组(tuple)是Python中的一种序列类型,类似于列表,它可以存储多个元素。与列表不同的是,元组是不可变的,一旦创建后就不能修改

1. 初始化

a. 使用小括号()

my_tuple = ()

        这种方式创建的元组是空的,不包含任何元素。

        使用小括号()和逗号分隔的元素创建元组:

my_tuple = (1, 2, 3)

b. 省略小括号

my_tuple = 1, 2, 3

        逗号分隔的元素会被组合成一个元组。省略了小括号,但是仍然是一个元组。

c. tuple() 函数

   tuple()函数可以将其他可迭代对象(如列表、字符串、字典等)转换为元组。

  • 将列表转换为元组:
my_list = [1, 2, 3, 4, 5]
my_tuple = tuple(my_list)
print(my_tuple)  # 输出:(1, 2, 3, 4, 5)
  • 将字符串转换为元组:
my_string = "Hello, World!"
my_tuple = tuple(my_string)
print(my_tuple)  # 输出:('H', 'e', 'l', 'l', 'o', ',', ' ', 'W', 'o', 'r', 'l', 'd', '!')
  • 将字典转换为元组:
my_dict = {'a': 1, 'b': 2, 'c': 3}
my_tuple = tuple(my_dict)
print(my_tuple)  # 输出:('a', 'b', 'c')

2. 访问元组元素

a. 索引

# 使用索引访问元组中的特定元素
print(my_tuple[0])      # 输出:a
print(my_tuple[-1])      # 输出:d

b. 切片

# 使用切片操作获取元组的子序列
print(my_tuple[1:3])    # 输出:('b', 'c')
print(my_tuple[1:])     # 输出:('b', 'c', 'd')
print(my_tuple[:])      # 输出:('a', 'b', 'c', 'd')
print(my_tuple[1:-1])   # 输出:('b',)
print(my_tuple[:-1])    # 输出:('a', 'b', 'c')

3. 元组的特性

a. 不可变

        元组是不可变的,一旦创建后,不能修改元组的元素。无法对元组中的元素进行增加、删除或修改操作。

my_tuple = (1, 2, 3)
my_tuple[0] = 4  # 会引发一个类型错误(TypeError: 'tuple' object does not support item assignment)

b. 包含不同类型

        元组可以包含不同类型的元素,例如整数、字符串、浮点数等。

my_tuple = (1, "hello", 3.14)

c. 可嵌套

        元组可以嵌套,即元组中可以包含其他元组作为元素。

# 访问元组中的元素
element1 = nested_tuple[0]
print(element1)  # 输出: (1, 'hello')
print(nested_tuple[2][0])  # 输出: world

4. 元组的常用操作

a. 元组长度

b. 元素计数

c. 元组拼接

d. 元组重复

e. 检查元素是否存在于元组中

my_tuple = (1, 2, 3)# 获取元组的长度
print(len(my_tuple))  # 输出:3# 元素计数
print(my_tuple.count(2))  # 输出: 1(元素2在元组中出现的次数)# 元组拼接
new_tuple = my_tuple + (4, 5)
print(new_tuple)  # 输出:(1, 2, 3, 4, 5)# 元组重复
repeated_tuple = my_tuple * 2
print(repeated_tuple)  # 输出:(1, 2, 3, 1, 2, 3)# 检查元素是否存在于元组中
print(2 in my_tuple)  # 输出:True
print(4 not in my_tuple)  # 输出:True

5. 拆包

        元组拆包(元组解构、Tuple Unpacking)是一种将元组的元素赋值给多个变量的方法。通过元组解构,可以方便地将元组中的值分配给对应的变量。

my_tuple = (1, 2, 3)
a, b, c = my_tuple
print(a)  # 输出:1
print(b)  # 输出:2
print(c)  # 输出:3

        在这个例子中,元组my_tuple包含了三个元素,分别是1、2和3。通过元组解构,我们将这三个值分别赋给了变量abc。结果是变量a的值为1,变量b的值为2,变量c的值为3。

        需要注意的是,变量的数量必须与元组中的元素数量相同,否则会引发异常。

  • 变量的数量少于元组中的元素数量:
my_tuple = (1, 2, 3)
a, b = my_tuple
ValueError: too many values to unpack (expected 2)
  • 变量的数量多于元组中的元素数量:
my_tuple = (1, 2, 3)
a, b, c, d = my_tuple
ValueError: not enough values to unpack (expected 4, got 3)

6. 遍历

a. for 循环

my_tuple = (1, 2, 3, 4, 5)
for element in my_tuple:print(element)

b. enumerate()函数

my_tuple = (1, 2, 3, 4, 5)for index, element in enumerate(my_tuple):print(f"Index: {index}, Element: {element}")

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_169444.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

XXE-Lab for PHP

环境配置 1.将靶场进行下载.... https://github.com/c0ny1/xxe-lab 2.将PHPStudy的中间件与版本信息调制为php-5.4.45Apache访问以下地址开始练习... http://127.0.0.1/xxelabs/php_xxe/ 靶场实操 1.在登录界面输入账号密码并抓取数据包.... 2.尝试读取本地文件.... <…

(其他) 剑指 Offer 67. 把字符串转换成整数 ——【Leetcode每日一题】

❓ 剑指 Offer 67. 把字符串转换成整数 难度&#xff1a;中等 写一个函数 StrToInt&#xff0c;实现把字符串转换成整数这个功能。不能使用 atoi 或者其他类似的库函数。 首先&#xff0c;该函数会根据需要丢弃无用的开头空格字符&#xff0c;直到寻找到第一个非空格的字符为…

博客系统(升级(Spring))(二)获取当前用户信息、对密码进行加密、设置统一数据格式、设置未登录拦截、线程池

博客系统&#xff08;二&#xff09; 博客系统获取当前用户的信息对密码进行加密和解密的操作设置统一的数据返回格式设置未登录拦截设置线程池 博客系统 博客系统是干什么的&#xff1f; CSDN就是一个典型的博客系统。而我在这里就是通过模拟实现一个博客系统&#xff0c;这是…

react实现一个搜索部门(input + tree)

目录 react实现一个搜索部门(input tree)searchDept.jsxtreeData.js使用组件效果 react实现一个搜索部门(input tree) searchDept.jsx import React, { useState, useEffect } from "react"; import StyleDeptId from "styled-components"; import Spl…

RabbitMQ管控台使用

安装成功RabbitMQ后&#xff0c;进入到管理控制台界面 拷贝配置文件到指定目录当中然后重启RabbitMQ。

力扣:92. 反转链表 II(Python3)

题目&#xff1a; 给你单链表的头指针 head 和两个整数 left 和 right &#xff0c;其中 left < right 。请你反转从位置 left 到位置 right 的链表节点&#xff0c;返回 反转后的链表 。 来源&#xff1a;力扣&#xff08;LeetCode&#xff09; 链接&#xff1a;力扣&#…

joplin更新后找不到文章

Joplin的数据默认是存储在C:\Users\Username.config\joplin-desktop下的。我修改为了D:\joplinnotes 这样就导致在升级覆盖安装的时候&#xff0c;笔记丢失路径。如果记不起之前笔记保存在哪里&#xff0c;也可以搜索类似文件来回忆之前自己保存笔记的位置 cache\ plugins\ re…

国内 Docker 镜像加速器和国内公共镜像仓库那些事

前言 首先我们知道&#xff0c;全球最大的公共镜像仓库是 Docker 公司自己搭建的 Docker Hub&#xff0c;也是权威性最高的&#xff0c;里面包含了各种各样的官方镜像&#xff0c;Docker Hub 为每一个注册用户提供了个人镜像仓库服务&#xff0c;该个人镜像仓库是公共的。 以上…

OpenCV实现图像的混合

原理 这其实也是加法&#xff0c;但是不同的是两幅图像的权重不同&#xff0c;这就会给人一种混合或者透明的感觉。 图像混合的计算公式如下: g(x)(1-a)f0(x) af1(x) 通过修改α的值(0→1) &#xff0c;可以实现非常炫酷的混合。 现在我们把两幅图混合在一起。 第一幅图…

基于SpringBoot+Vue前后端分离的学校心理健康测试系统

✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取项目下载方式&#x1f345; 一、项目背景介绍&#xff1a; 研究背景介绍&#xf…

华为云云服务器评测|详解 Nacos 安装部署

环境配置 服务器云耀云服务器L操作系统CentOS 7.9 64bit | 公共镜像JDK64 bit JDK 1.8MavenMaven 3.2.xnacos-server2.2.3 下载地址 官方githubRelease 2.2.3 (May 25th, 2023) alibaba/nacos GitHub百度网盘链接&#xff1a;https://pan.baidu.com/s/1K8UE6iJL2ZnosUY83b…

SpringBoot自动配置原理及使用流程

SpringBoot自动配置原理及使用流程 SpringBoot自动配置原理 具体流程 1、导入场景 以starter-web为例 场景启动器导入了相关场景的所有依赖&#xff0c;如&#xff1a;starter-json,starter-tomcat,spring-webmvc。 每个场景启动器都引入了一个spring-boot-starter,核心场景…

darknet识别(某验)文字点选验证码

今天介绍darknet识别文字点选验证码&#xff0c; Darknet is an open source neural network framework written in C and CUDA. darknet是基于yolo算法的神经网络框架。 废话少说先热热身 平台是Ubuntu20&#xff0c;首先要安装NVIDIA驱动 1、安装驱动 NVIDIA GeForce 驱动…

2023-09-09 LeetCode每日一题(课程表)

2023-09-09每日一题 一、题目编号 207. 课程表二、题目链接 点击跳转到题目位置 三、题目描述 你这个学期必须选修 numCourses 门课程&#xff0c;记为 0 到 numCourses - 1 。 在选修某些课程之前需要一些先修课程。 先修课程按数组 prerequisites 给出&#xff0c;其中…

[De1CTF 2019]SSRF Me | BUUCTF

根据题目名我们知道这是一道SSRF的题目 它允许攻击者在受害服务器上发起未经授权的网络请求 分析 在buuctf上有一个提示 也就是说flag在 网站的flag.txt 访问主页 很明显是段flask代码 格式化后 from flask import Flask, request # 导入Flask和request模块 import sock…

易优cms响应式月嫂家政服务公司网站模板源码—自适应手机端设计,支持后台管理

易优cms响应式月嫂家政服务公司网站模板源码 自适应手机端 带后台 模板基于EyouCMS内核制作,模板编码为UTF8 ,适合行业:家政服务类企业。 模板信息&#xff1a; 模板分类&#xff1a;摄像、婚庆、家政、保洁 适合行业&#xff1a;家政服务类企业 模板介绍&#xff1a; 本模…

【 Tkinter界面-练习04】 画板作画详细揭示

一、说明 对画布的掌握分三个部分&#xff0c;将图形paint到画布、动画move、鼠标画&#xff1b;本篇将侧重于鼠标画的功能&#xff0c;提起鼠标画实现&#xff0c;将涉及一系列组合操作才能完成&#xff0c;这里将一一加以介绍。 Canvas 小部件具有大量功能&#xff0c;我们不…

Redis优化 RDB AOF持久化

---------------------- Redis 高可用 ---------------------------------------- 在web服务器中&#xff0c;高可用是指服务器可以正常访问的时间&#xff0c;衡量的标准是在多长时间内可以提供正常服务&#xff08;99.9%、99.99%、99.999%等等&#xff09;。 但是在Redis语境…

baichuan2(百川2)本地部署的实战方案

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法…

buuctf crypto 【Dangerous RSA】解题记录

1.打开文件 2.看到e非常小&#xff0c;c和n都很大&#xff0c;应该是低加密指数&#xff0c;上脚本 from gmpy2 import * from Crypto.Util.number import * n0x52d483c27cd806550fbe0e37a61af2e7cf5e0efb723dfc81174c918a27627779b21fa3c851e9e94188eaee3d5cd6f752406a43fbec…