Python基础-列表(list)和元组(tuple)
Python包含6种内建的序列:列表,元组,字符串,Unicode字符串,buffer对象,xrange对象,本文讨论列表和元组。
1.列表可以修改,元组则不能修改。
2.几乎在所有的情况下,列表都可以替代元组。
一、【列表(list)】
#1.语法:列表的各个元素用","分割,写在方括号中。
#如:用列表表示数据库中一个人的信息:姓名,性别,年龄
zhangsan=['张三','男',30]
lisi=['李四','女',28]
print(zhangsan)
print(type(zhangsan))
#输出:['张三', '男', 30]
#输出:<class 'list'>
#2.列表可以包含其他列表,如:
zhangsan=['张三','男',30]
lisi=['李四','女',28]
users=[zhangsan,lisi]
print(users)
#输出:[['张三', '男', 30], ['李四', '女', 28]]
#3.所有序列类型都可以进行:索引,分片,加,乘等操作,以及包含检查元素是否存在,序列长度,最大元素,最小元素等内建函数。
#3.1 索引:索引从0开始递增;使用负数索引时,会从右边计数,右边最后一个元素位置编号是-1,不是0
hello="HelloWorld"
print(hello[0]+"-"+hello[-1])
#输出:H-d
#3.2 分片:通过分片来访问一定范围内的元素,通过冒号相隔的两个索引来实现。注意:第1个索引的元素包含在分片内,第2个索引的元素不包含在分片内
hello="SayHelloWorld"
print(hello[3:8])
#输出:Hello
#分片步长:默认步长为1,分片按照这个步长遍历序列元素,然后返回开始和结束点之间的所有元素。
print(hello[3:8:2])
#输出:Hlo
#3.2 序列相加:两种相同类型的序列才能进行连接操作。
a=[1,2,3]
b=[4,5,6]
print(a+b)
#输出:[1, 2, 3, 4, 5, 6]
#3.3 乘法:用数字x乘以一个序列,会得到将原序列元素重复x次的新序列
a=[1,2,3]
print(a*3)
#输出:[1, 2, 3, 1, 2, 3, 1, 2, 3]
#3.4 检查元素是否存在:使用in运算符
print("H" in hello)
#输出:True
zhangsan=['张三','男',30]
lisi=['李四','女',28]
users=[zhangsan,lisi]
print(['张三','男',30] in users)
#输出:True
#3.5 len(),max(),min() 函数
num=[100,34,678]
print(str(len(num))+"-"+str(max(num))+"-"+str(min(num)))
#输出:3-678-34
#4.列表方法(函数)
#4.1 list()函数:因为字符串不能像列表一样被修改,可以将字符串转换为列表
hello="HelloWorld"
hellolist=list(hello)
print(hellolist)
#输出:['H', 'e', 'l', 'l', 'o', 'W', 'o', 'r', 'l', 'd']
#反之,将列表组装成字符串,需要用到join函数
hello2="".join(['H', 'e', 'l', 'l', 'o', 'W', 'o', 'r', 'l', 'd'])
print(hello2)
#输出:HelloWorld
#4.2 del 删除元素
names=["zhangsan","lisi","wangwu"]
del names[1]
print(names)
#输出:['zhangsan', 'wangwu']
#4.3 append()方法:在列表末尾追加新元素
num=[1,2,3]
num.append(4)
print(num)
#输出:[1, 2, 3, 4]
#4.3 count()方法:统计某个元素在列表中出现的次数
chars=['A','B','A','C','A']
print(chars.count("A"))
#输出:3
#4.4 extend()方法:在列表的末尾一次性追加另一个序列中的多个值
#注意:extend()方法修改了被扩展的序列,而a+b是两个序列的连接操作,它返回的是一个新的序列
a=[1,2,3]
b=[4,5,6]
c=a+b
a.extend(b)
print(a)
print(c)
#输出:[1, 2, 3, 4, 5, 6]
#输出:[1, 2, 3, 4, 5, 6]
#4.5 index()方法:用于在列表中找出某个值第一个匹配的索引位置
chars=['A','B','A','C','A']
print(chars.index("C"))
#输出:3
#4.6 insert()方法:用于将对象插入到列表中
a=[1,2,3]
a.insert(1,"A")
print(a)
#输出:[1, 'A', 2, 3]
#4.7 pop()方法:会移除列表中的一个元素(默认是最后一个),并发返回该元素的值
#pop方法是唯一一个既能修改列表,又能返回元素值(除了None)的列表方法(类似栈,后进先出)
a=[1,2,3]
b=a.pop(1)
print(a)
print(b)
#输出:[1, 3]
#输出:2
#4.8 remove()方法:用于移除列表中某个位置的第一个匹配项
a=[1,2,3,'A','B','C']
a.remove('A')
print(a)
#输出:[1, 2, 3, 'B', 'C']
#4.9 reverse()方法:用于将列表中的元素反向存放
a=[1,2,3]
a.reverse()
print(a)
#输出:[3, 2, 1]
#4.9 sort()方法:用于在原位置对列表进行排序,改变原来的列表,而不是返回新的列表
a=[1,7,4,5,3,6,2,8]
b=['E','B','D','F','C','A']
a.sort()
b.sort()
print(a)
print(b)
#输出:[1, 2, 3, 4, 5, 6, 7, 8]
#输出:['A', 'B', 'C', 'D', 'E', 'F']
#如果只是想获取排序后的列表,而不是修改原列表,可以使用sorted()方法
a=[1,7,4,5,3,6,2,8]
b=['E','B','D','F','C','A']
print(sorted(a))
print(sorted(b))
#输出:[1, 2, 3, 4, 5, 6, 7, 8]
#输出:['A', 'B', 'C', 'D', 'E', 'F']
二、元组
#元组与列表一样,也是一种序列,唯一不同的是元组不能修改。
#1.语法:通过()扩起来,内部用","隔开。
t=(1,2,3)
print(type(t))
#输出:<class 'tuple'>
#2.tuple()函数:与list()函数基本上是一样的,以一个序列为参数,并把它转换为元组,如果参数是元组,则原样返回。
a=[1,2,3]
b=tuple(a)
print(b)
#输出:(1, 2, 3)
完整代码
#1.Python包含6种内建的序列:列表,元组,字符串,Unicode字符串,buffer对象,xrange对象,本文讨论列表和元组。
#2.列表可以修改,元组则不能修改。
#3.几乎在所有的情况下,列表都可以替代元组。#【列表】
#1.语法:列表的各个元素用","分割,写在方括号中。,如:用列表表示数据库中一个人的信息:姓名,性别,年龄
zhangsan=['张三','男',30]
lisi=['李四','女',28]
print(zhangsan)
print(type(zhangsan))
#输出:['张三', '男', 30]
#输出:<class 'list'>#2.序列可以包含其他序列,如:
zhangsan=['张三','男',30]
lisi=['李四','女',28]
users=[zhangsan,lisi]
print(users)
#输出:[['张三', '男', 30], ['李四', '女', 28]]#3.所有序列类型都可以进行:索引,分片,加,乘等操作,以及包含检查元素是否存在,序列长度,最大元素,最小元素等内建函数。
#3.1 索引:索引从0开始递增,使用负数索引时,会从右边计数,右边最后一个元素位置编号是-1,不是0
hello="HelloWorld"
print(hello[0]+"-"+hello[-1])
#输出:H-o#3.2 分片:通过分片来访问一定范围内的元素,通过冒号相隔的两个索引来实现。注意:第1个索引的元素包含在分片内,第2个索引的元素不包含在分片内
hello="SayHelloWorld"
print(hello[3:8])
#输出:Hello
#分片步长:默认步长为1,分片按照这个步长遍历序列元素,然后返回开始和结束点之间的所有元素。
hello="SayHelloWorld"
print(hello[3:8:2])
#输出:Hlo#3.2 序列相加:两种相同类型的序列才能进行连接操作。
a=[1,2,3]
b=[4,5,6]
print(a+b)
#输出:[1, 2, 3, 4, 5, 6]#3.3 乘法:用数字x乘以一个序列,会得到将原序列元素重复x次的新序列
a=[1,2,3]
print(a*3)
#输出:[1, 2, 3, 1, 2, 3, 1, 2, 3]#3.4 检查元素是否存在:使用in运算符
print("H" in hello)
#输出:True
zhangsan=['张三','男',30]
lisi=['李四','女',28]
users=[zhangsan,lisi]
print(['张三','男',30] in users)
#输出:True#3.5 len,max,min 函数
num=[100,34,678]
print(str(len(num))+"-"+str(max(num))+"-"+str(min(num)))
#输出:3-678-34#4.列表方法(函数)
#4.1 list函数:因为字符串不能像列表一样被修改,可以将字符串转换为列表
hello="HelloWorld"
hellolist=list(hello)
print(hellolist)
#输出:['H', 'e', 'l', 'l', 'o', 'W', 'o', 'r', 'l', 'd']#反之,将列表组装成字符串,需要用到join函数
hello2="".join(['H', 'e', 'l', 'l', 'o', 'W', 'o', 'r', 'l', 'd'])
print(hello2)
#输出:HelloWorld#4.2 删除元素
names=["zhangsan","lisi","wangwu"]
del names[1]
print(names)
#输出:['zhangsan', 'wangwu']#4.3 append()方法:在列表末尾追加新元素
num=[1,2,3]
num.append(4)
print(num)
#输出:[1, 2, 3, 4]#4.3 count()方法:统计某个元素在列表中出现的次数
chars=['A','B','A','C','A']
print(chars.count("A"))
#输出:3#4.4 extend()方法:在列表的末尾一次性追加另一个序列中的多个值
#注意:extend()方法修改了被扩展的序列,而a+b是两个序列的连接操作,它返回的是一个新的序列
a=[1,2,3]
b=[4,5,6]
c=a+b
a.extend(b)
print(a)
print(c)
#输出:[1, 2, 3, 4, 5, 6]
#输出:[1, 2, 3, 4, 5, 6]#4.5 index()方法:用于在列表中找出某个值第一个匹配的索引位置
chars=['A','B','A','C','A']
print(chars.index("C"))
#输出:3#4.6 insert()方法:用于将对象插入到列表中
a=[1,2,3]
a.insert(1,"A")
print(a)
#输出:[1, 'A', 2, 3]#4.7 pop()方法:会移除列表中的一个元素(默认是最后一个),并发返回该元素的值
#pop方法是唯一一个既能修改列表,又能返回元素值(除了None)的列表方法(类似栈,后进先出)
a=[1,2,3]
b=a.pop(1)
print(a)
print(b)
#输出:[1, 3]
#输出:2#4.8 remove()方法:用于移除列表中某个位置的第一个匹配项
a=[1,2,3,'A','B','C']
a.remove('A')
print(a)
#输出:[1, 2, 3, 'B', 'C']#4.9 reverse()方法:用于将列表中的元素反向存放
a=[1,2,3]
a.reverse()
print(a)
#输出:[3, 2, 1]#4.9 sort()方法:用于在原位置对列表进行排序,改变原来的列表,而不是返回新的列表
a=[1,7,4,5,3,6,2,8]
b=['E','B','D','F','C','A']
a.sort()
b.sort()
print(a)
print(b)
#输出:[1, 2, 3, 4, 5, 6, 7, 8]
#输出:['A', 'B', 'C', 'D', 'E', 'F']#如果只是想获取排序后的列表,而不是修改原列表,可以使用sorted()方法
a=[1,7,4,5,3,6,2,8]
b=['E','B','D','F','C','A']
print(sorted(a))
print(sorted(b))
#输出:[1, 2, 3, 4, 5, 6, 7, 8]
#输出:['A', 'B', 'C', 'D', 'E', 'F']#二、元组
#元组与列表一样,也是一种序列,唯一不同的是元组不能修改。
#1.语法:通过()扩起来,内部用","隔开。
t=(1,2,3)
print(type(t))
#输出:<class 'tuple'>#2.tuple()函数:与list()函数基本上是一样的,以一个序列为参数,并把它转换为元组,如果参数是元组,则原样返回。
a=[1,2,3]
b=tuple(a)
print(b)
#输出:(1, 2, 3)
相关文章:
Python基础-列表(list)和元组(tuple)
Python包含6种内建的序列:列表,元组,字符串,Unicode字符串,buffer对象,xrange对象,本文讨论列表和元组。 1.列表可以修改,元组则不能修改。 2.几乎在所有的情况下,列表…...
Dubbo介绍及使用
🍓 简介:java系列技术分享(👉持续更新中…🔥) 🍓 初衷:一起学习、一起进步、坚持不懈 🍓 如果文章内容有误与您的想法不一致,欢迎大家在评论区指正🙏 🍓 希望这篇文章对你有所帮助,欢…...
初阶C语言-分支和循环语句(下)
“花会沿途盛开,以后的路也是。” 今天我们一起来继续学完分支语句和循环语句。 分支和循环 3.循环语句3.4 do...while()循环3.4.1 do语句的用法 3.5关于循环的一些练习3.6 goto语句 3.循环语句 3.4 do…while()循环 3.4.1 do语句的用法 do循环语句;//当循环语句…...
pytorch工具——pytorch中的autograd
目录 关于torch.tensor关于tensor的操作关于梯度gradients 关于torch.tensor 关于tensor的操作 x1torch.ones(3,3) xtorch.ones(2,2,requires_gradTrue) print(x1,\n,x)yx2 print(y) print(x.grad_fn) print(y.grad_fn)zy*y*3 outz.mean() print(z,out)注意 atorch.randn(2,…...
Linux--进程池
1.一个父进程生成五个子进程且分别建立与子进程管道 ①用for循环,结束条件为<5 ②father父进程每次都要离开for循环,生成下一个子进程和管道 2.#include <cassert>和#include <assert.h>的区别 assert.h 是 C 标准库的头文件ÿ…...
SpringCloudAlibaba微服务实战系列(四)Sentinel熔断降级、异常fallback、block细致处理
SpringCloudAlibaba Sentinel降级和熔断 接着上篇文章的内容,在Sentinel中如何进行降级和熔断呢? 熔断降级规则 降级规则 在Sentinel中降级主要有三个策略:RT、异常比例、异常数,也是针对某个资源的设置。而在1.8.0版本后RT改为…...
WebDAV之π-Disk派盘+ WinSCP
WinSCP是一个免费的开源文件传输应用程序,它使用文件传输协议,安全外壳文件传输协议和安全复制协议来进行纯文件或安全文件传输。该应用程序旨在与Windows一起使用,并支持常见的Windows桌面功能,例如拖放文件,跳转列表…...
Python案例分析|使用Python图像处理库Pillow处理图像文件
本案例通过使用Python图像处理库Pillow,帮助大家进一步了解Python的基本概念:模块、对象、方法和函数的使用 使用Python语言解决实际问题时,往往需要使用由第三方开发的开源Python软件库。 本案例使用图像处理库Pillow中的模块、对象来处理…...
音视频——压缩原理
H264视频压缩算法现在无疑是所有视频压缩技术中使用最广泛, 最流行的。随着 x264/openh264以及ffmpeg等开源库的推出,大多数使用者无需再对H264的细节做过多的研究,这大降低了人们使用H264的成本。 但为了用好H264,我们还是要对…...
微服务 云原生:搭建 K8S 集群
为节约时间和成本,仅供学习使用,直接在两台虚拟机上模拟 K8S 集群搭建 踩坑之旅 系统环境:CentOS-7-x86_64-Minimal-2009 镜像,为方便起见,直接在 root 账户下操作,现实情况最好不要这样做。 基础准备 关…...
C++中的数学问题---进制转换
二进制转十六进制 string binToHex(string bin){string hex"";if(bin.size()%4!0){for(int i0;i<(4-bin.size()%4);i){bin"0"bin;}}for(int i0;i<bin.size();i4){string tmpbin.substr(i,4);bitset<4>b(tmp);hexb.to_ulong()<10?char(b.t…...
开发一个RISC-V上的操作系统(三)—— 串口驱动程序(UART)
目录 文章传送门 一、什么是串口 二、本项目串口的FPGA实现 三、串口驱动程序的编写 四、上板测试 文章传送门 开发一个RISC-V上的操作系统(一)—— 环境搭建_riscv开发环境_Patarw_Li的博客-CSDN博客 开发一个RISC-V上的操作系统(二&…...
nuxt项目部署,npm run build 和npm run generate的区别
每日鸡汤:每个你想要学习的瞬间都是未来的你向自己求救 非服务端渲染的项目,比如普通的vite vue项目,我们在部署生产环境的时候,只需要两步 运行 npm run build 然后得到了一个 dist 文件夹将这个dist文件夹部署到一个静态服务器…...
数据仓库设计理论
数据仓库设计理论 一、数据仓库基本概念 1.1、数据仓库介绍 数据仓库是一个用于集成、存储和分析大量结构化和非结构化数据的中心化数据存储系统。它旨在支持企业的决策制定和业务分析活动。 1.2、基本特征 主题导向:数据仓库围绕特定的主题或业务领域进行建模…...
数据接口有哪些?(数据接口有哪几种)
数据接口是指不同应用程序或系统之间交换数据的通信界面。在现代信息化社会中,数据接口扮演着极为重要的角色,它们使得不同平台之间能够相互连接和交流,从而实现数据共享和应用集成。 数据接口的种类繁多,常见的有以下几种&#…...
华为云CodeArts产品体验的心得体会及想法
文章目录 前言CodeArts 的产品优势一站式软件开发生产线研发安全Built-In华为多年研发实践能力及规范外溢高质高效敏捷交付 功能特性说明体验感受问题描述完结 前言 华为云作为一家全球领先的云计算服务提供商,致力于为企业和个人用户提供高效、安全、可靠的云服务。…...
下载安装:SQLite+SQLiteStudio+VS
目录 1、SQLite 1.1、下载SQLite 1.2、配置SQLite的环境变量 2、SQLite Studio 2.1、下载SQLite Studio 2.2、安装SQLite Studio 3、Visual Studio 3.1、下载Visual Studio 3.2、安装Visual Studio 1、SQLite 1.1、下载SQLite SQLite官网:SQLite Downl…...
nginx路由
一般我们经常在访问网站时,通常会遇到输入某个页面的网址时,出现路由的转发,重定向等。可能访问的是一个网址,出来的时候就显示的是另外的地址。这是由于使用了nginx的缘故,保护了网址的安全性 (1…...
MobPush Android SDK 厂商推送限制
概述 厂商推送限制 每个厂商通道都有对应的厂商配额和 QPS 限制,当请求超过限制且已配置厂商回执时,MobPush会采取以下措施: 当开发者推送请求超过厂商配额时,MobPush将通过自有通道进行消息下发。当开发者推送请求超过厂商 QP…...
计算机网络 day7 扫描IP脚本 - 路由器 - ping某网址的过程
目录 network 和 NetworkManager关系: 实验:编写一个扫描脚本,知道本局域网里哪些ip在使用,哪些没有使用? 使用的ip对应的mac地址都要显示出来 计算机程序执行的两种不同方式: shell语言编写扫描脚本 …...
(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)
题目:3442. 奇偶频次间的最大差值 I 思路 :哈希,时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况,哈希表这里用数组即可实现。 C版本: class Solution { public:int maxDifference(string s) {int a[26]…...
C++:std::is_convertible
C++标志库中提供is_convertible,可以测试一种类型是否可以转换为另一只类型: template <class From, class To> struct is_convertible; 使用举例: #include <iostream> #include <string>using namespace std;struct A { }; struct B : A { };int main…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序
一、开发环境准备 工具安装: 下载安装DevEco Studio 4.0(支持HarmonyOS 5)配置HarmonyOS SDK 5.0确保Node.js版本≥14 项目初始化: ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...
QT: `long long` 类型转换为 `QString` 2025.6.5
在 Qt 中,将 long long 类型转换为 QString 可以通过以下两种常用方法实现: 方法 1:使用 QString::number() 直接调用 QString 的静态方法 number(),将数值转换为字符串: long long value 1234567890123456789LL; …...
GitFlow 工作模式(详解)
今天再学项目的过程中遇到使用gitflow模式管理代码,因此进行学习并且发布关于gitflow的一些思考 Git与GitFlow模式 我们在写代码的时候通常会进行网上保存,无论是github还是gittee,都是一种基于git去保存代码的形式,这样保存代码…...
C++课设:简易日历程序(支持传统节假日 + 二十四节气 + 个人纪念日管理)
名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 专栏介绍:《编程项目实战》 目录 一、为什么要开发一个日历程序?1. 深入理解时间算法2. 练习面向对象设计3. 学习数据结构应用二、核心算法深度解析…...
MySQL 8.0 事务全面讲解
以下是一个结合两次回答的 MySQL 8.0 事务全面讲解,涵盖了事务的核心概念、操作示例、失败回滚、隔离级别、事务性 DDL 和 XA 事务等内容,并修正了查看隔离级别的命令。 MySQL 8.0 事务全面讲解 一、事务的核心概念(ACID) 事务是…...
Python Einops库:深度学习中的张量操作革命
Einops(爱因斯坦操作库)就像给张量操作戴上了一副"语义眼镜"——让你用人类能理解的方式告诉计算机如何操作多维数组。这个基于爱因斯坦求和约定的库,用类似自然语言的表达式替代了晦涩的API调用,彻底改变了深度学习工程…...
提升移动端网页调试效率:WebDebugX 与常见工具组合实践
在日常移动端开发中,网页调试始终是一个高频但又极具挑战的环节。尤其在面对 iOS 与 Android 的混合技术栈、各种设备差异化行为时,开发者迫切需要一套高效、可靠且跨平台的调试方案。过去,我们或多或少使用过 Chrome DevTools、Remote Debug…...
6个月Python学习计划 Day 16 - 面向对象编程(OOP)基础
第三周 Day 3 🎯 今日目标 理解类(class)和对象(object)的关系学会定义类的属性、方法和构造函数(init)掌握对象的创建与使用初识封装、继承和多态的基本概念(预告) &a…...
