当前位置: 首页 > news >正文

python数据结构-列表,元组

列表

列表是Python中最通用的数据类型,可以写成方括号之间的逗号分隔值(项目)列表。 使用列表的重要事项是,列表中的项目不必是相同的类型。也就是说一个列表中的项目(元素)可以是数字,字符串,数组,字典等甚至是列表类型。
创建列表时,可在方括号([])中放置并使用逗号分隔值。 例如 -

list1 = ['physics', 'chemistry', 1990, 2019];
list2 = [1, 2, 3, 4, 5 ];
list3 = ["a", "b", "c", "d"]

与字符串索引类似,列表索引从0开始,列表可以被切片,连接等。

访问列表中的值

要访问列表中的值,请使用方括号将切片与索引或索引一起使用,以获取该索引处的值。 例如 -

#!/usr/bin/pythonlist1 = ['physics', 'chemistry', 1997, 2000];
list2 = [1, 2, 3, 4, 5, 6, 7 ];# 第1个元素,返回的是字符串
print "list1[0]: ", list1[0]# 第2到5个元素,返回的是一个列表
print "list2[1:5]: ", list2[1:5]

当上面的代码执行时,它会产生以下结果 -

list1[0]:  physics
list2[1:5]:  [2, 3, 4, 5]

更新列表

可以通过在赋值运算符的左侧给出切片来更新列表的单个或多个元素,并且可以使用append()方法将其添加到列表中的元素。 例如 -

#!/usr/bin/pythonlist = ['physics', 'chemistry', 1997, 2000];
print "Value available at index 2 : "
print list[2]
list[2] = 2001;
print "New value available at index 2 : "
print list[2]

注 - append()方法在后面的章节中讨论。

当上面的代码被执行时,它会产生以下结果 -

Value available at index 2 :
1997
New value available at index 2 :
2001

删除列表元素

要删除一个列表元素,如果确切地知道要删除哪个元素,或者不知道如何使用remove()方法,那么可以使用del语句。 例如 -

#!/usr/bin/pythonlist1 = ['physics', 'chemistry', 1997, 2000];
print list1
del list1[2];
print "After deleting value at index 2 : "
print list1

当上面的代码被执行时,它会产生以下结果 -

['physics', 'chemistry', 1997, 2000]
After deleting value at index 2 :
['physics', 'chemistry', 2000]

注 - remove()方法在后面的章节中讨论。

基本列表操作

列表很像字符串一样对+和*运算符作出响应; 它们也意味着连接和重复,但它计算返回结果是新列表,而不是字符串

Python表达式结果描述
len([1, 2, 3])3计算列表的长度
[1, 2, 3] + [ 4, 5, 6][1, 2, 3, 4, 5, 6]两个列表连接
[‘Hi!’] * 4[‘Hi!’, ‘Hi!’, ‘Hi!’, ‘Hi!’]重复操作
3 in [1, 2, 3]True成员关系
for x in [1, 2, 3]: print x,1 2 3迭代

元组

元组是一系列不可变的Python对象。 元组是一种序列,就像列表一样。 元组和列表的区别在于,不同于列表和元组使用中括号 - (),而列表使用方括号 - [],并且元组不能改变。
创建一个元组与放置不同的逗号分隔值一样简单。 也可以将这些以逗号分隔的值放在圆括号之间。 例如 -

tup1 = ('physics', 'chemistry', 1997, 2000);
tup2 = (1, 2, 3, 4, 5 );
tup3 = "a", "b", "c", "d";

空元组是两个不包含任何内容的圆括号,如下 -

tup1 = ();

要写一个包含单个值的元组,即使只有一个值,也必须包含一个逗号,

tup1 = (50,);

像字符串索引一样,元组索引从0开始,并且它们可以被分片,连接等等。

访问元组中的值

要访问元组中的值,可使用方括号将切片与索引一起使用,以获取该索引处可用的值。 例如 -

#!/usr/bin/pythontup1 = ('physics', 'chemistry', 1997, 2000);
tup2 = (1, 2, 3, 4, 5, 6, 7 );
print ("tup1[0]: ", tup1[0]);
print ("tup2[1:5]: ", tup2[1:5]);

执行上面示例代码,得到以下结果 -

tup1[0]:  physics
tup2[1:5]:  [2, 3, 4, 5]

更新元组

元组是不可变的,这意味着不能更新或改变元组元素的值。但是可以将现有的元组的一部分来创建或重组成新的元组,如下例所示 -

#!/usr/bin/pythontup1 = (12, 34.56);
tup2 = ('abc', 'xyz');# Following action is not valid for tuples
# tup1[0] = 100;# So let's create a new tuple as follows
tup3 = tup1 + tup2;
print (tup3);

当执行上面示例代码,得到以下结果 -

(12, 34.56, 'abc', 'xyz')

删除元组元素

删除单个元组元素是不可能的。 当然,将另一个元组与不需要的元素组合在一起成新的元组是没有任何问题的。
要显式删除整个元组,只需使用del语句。 例如 -

#!/usr/bin/pythontup = ('physics', 'chemistry', 1997, 2000);
print (tup);
del tup;
print ("After deleting tup : ");
print (tup);

这会产生以下结果。 请注意引发的异常,这是因为在del tup语句之后,元组不再存在 -

('physics', 'chemistry', 1997, 2000)
After deleting tup : 
Traceback (most recent call last):File "F:\worksp\python\test.py", line 7, in <module>print (tup);
NameError: name 'tup' is not defined

基本元组操作

元组可像字符串一样对+和*运算符作出响应; 它们也意味着连接和重复,但返回结果是一个新的元组,而不是一个字符串。
事实上,元组响应类似字符串使用的所有常规序列操作 -

Python表达式结果描述
len((1, 2, 3))3计算列表的长度
(1, 2, 3) + ( 4, 5, 6)(1, 2, 3, 4, 5, 6)两个列表连接
(‘Hi!’) * 4(‘Hi!’, ‘Hi!’, ‘Hi!’, ‘Hi!’)重复操作
3 in (1, 2, 3)True成员关系
for x in (1, 2, 3): print x,1 2 3迭代

相关文章:

python数据结构-列表,元组

列表 列表是Python中最通用的数据类型&#xff0c;可以写成方括号之间的逗号分隔值(项目)列表。 使用列表的重要事项是&#xff0c;列表中的项目不必是相同的类型。也就是说一个列表中的项目(元素)可以是数字&#xff0c;字符串&#xff0c;数组&#xff0c;字典等甚至是列表类…...

Properties类读配置文件、修改配置文件

Properties类简介(1)Properties类是专门用于读写配置文件的集合类(2)配置文件的后缀名为.properties,内容格式为:# 可以用“#”作为注释 键值 键值**注意:**键值对不需要有空格,值不需要用引号一起来。默认类型是String。键、值不可以是null(3)Properties类的方法可查找api文档…...

图解LeetCode——剑指 Offer 24. 反转链表

一、题目 定义一个函数&#xff0c;输入一个链表的头节点&#xff0c;反转该链表并输出反转后链表的头节点。 二、示例 示例: 【输入】 1->2->3->4->5->NULL 【输出】 5->4->3->2->1->NULL 限制&#xff1a; 0 < 节点个数 < 5000 三、…...

【C语言】“指针的运算”、“指针与数组”

文章目录一、指针运算1.指针 - 整数2.指针-指针3.指针关系运算二、指针与数组三、二级指针四、指针数组完结一、指针运算 指针可以进行整数&#xff0c;指针-指针&#xff0c;还有关系运算&#xff0c;其他的运算会被编译器阻止。 1.指针 - 整数 对指针进行的时候一定要注意不…...

Linux高级命令之查找文件命令

查找文件命令学习目标能够说出查找文件使用的命令1. find命令及选项的使用命令说明find在指定目录下查找文件(包括目录)find命令选项:选项说明-name根据文件名(包括目录名)字查找find命令及选项的效果图:2. find命令结合通配符的使用通配符:是一种特殊语句&#xff0c;主要有星…...

PyCharm+Docker:打造最舒适的深度学习炼丹炉

九、PyCharmDocker&#xff1a;打造最舒适的深度学习炼丹炉 安装docker&#xff1a; 如何在 Ubuntu 22.04 LTS 中安装 Docker 和 Docker Compose https://zhuanlan.zhihu.com/p/547169542 修改Linux硬盘卷标&#xff1a; ntfs文件系统&#xff1a;https://blog.csdn.net/n…...

【mock】手把手带你用mock写自定义接口+mock常用语法

mock自定义接口完整流程 官网语法规范:https://github.com/nuysoft/Mock/wiki/Syntax-Specification 首先: 要有一个项目,我这里是vue3项目,以下从vue3项目搭建开始,已搭建好的请直接看2 1.空目录下新建vue3项目 运行创建项目命令&#xff1a; 在bash中:(文件路径处输入cm…...

2023 年腾讯云服务器CVM快速配置购买教程,新手上云必备!

腾讯云服务器快速配置购买教程是新手必备的上云教程。主机教程网在本文中以腾讯云服务器为例&#xff0c;给大家带来一个完整的、手把手教学的服务器购买流程。助力快速完成服务器的购买、配置、以及网站的搭建&#xff0c;给新手节省宝贵的时间&#xff0c;避免采坑&#xff0…...

opencv显示图像

大家好&#xff0c;我是csdn的博主&#xff1a;lqj_本人 这是我的个人博客主页&#xff1a; lqj_本人的博客_CSDN博客-微信小程序,前端,python领域博主lqj_本人擅长微信小程序,前端,python,等方面的知识https://blog.csdn.net/lbcyllqj?spm1011.2415.3001.5343哔哩哔哩欢迎关注…...

C++:类和对象(中)

文章目录1 类的6个默认成员函数2 构造函数2.1 概念2.2 特性3 析构函数3.1 概念3.2 特性4 拷贝构造函数4.1 概念4.2 特性5 赋值运算符重载5.1 运算符重载5.2 赋值运算符重载5.3 前置重载和后置重载6 日期类的实现7 const成员8 取地址及const取地址操作符重载1 类的6个默认成员函…...

53. 最大子数组和

文章目录题目描述暴力法动态规划法分治法参考文献题目描述 给你一个整数数组 nums &#xff0c;请你找出一个具有最大和的连续子数组&#xff08;子数组最少包含一个元素&#xff09;&#xff0c;返回其最大和。 子数组 是数组中的一个连续部分。 示例 1&#xff1a; 输入&…...

基于Java+SpringBoot+SpringCloud+Vue前后端分离医院管理系统设计与实现

博主介绍&#xff1a;✌全网粉丝3W&#xff0c;全栈开发工程师&#xff0c;从事多年软件开发&#xff0c;在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建、毕业项目实战、项目定制✌ 博主作品&#xff1a;《微服务实战》专栏是本人的实战经验总结&#xff0c;《S…...

QT基础入门【环境配置篇】linux桌面QT开发环境的构建以及问题解决

目录 一、下载QT的安装包 二、安装 1.执行以下命令开始安装 2.选择配置 三、启动...

Linux系统之部署企业内部静态导航页

Linux系统之部署企业内部静态导航页 一、本次实践目的二、检查本地系统环境1.检查系统版本2.检查内核版本三、下载静态导航页资源包1.创建下载目录2.下载资源包四、安装apache服务1.安装httpd2.复制网页文件3.重启httpd服务4.检查httpd服务状态五、访问导航页六、修改导航页网站…...

2023备战金三银四,Python自动化软件测试面试宝典合集(四)

接上篇&#xff1a;11、点击塞钱进红包&#xff0c;选择使用新卡付款&#xff0c;按照流程添加新卡&#xff0c;此时同样需要考虑金额>新卡余额&#xff0c;金额<新卡余额&#xff0c;金额新卡余额三种情况12、使用指纹确认付款(正确的/不正确的指纹)13、使用密码确认付款…...

算法训练营 day43 动态规划 不同路径 不同路径 II

算法训练营 day43 动态规划 不同路径 不同路径 II 不同路径 62. 不同路径 - 力扣&#xff08;LeetCode&#xff09; 一个机器人位于一个 m x n 网格的左上角 &#xff08;起始点在下图中标记为 “Start” &#xff09;。 机器人每次只能向下或者向右移动一步。机器人试图达…...

关联查询的SQL有几种情况

1、内连接&#xff1a;inner join … on 结果&#xff1a;A表 ∩ B表 2、左连接&#xff1a;A left join B on &#xff08;2&#xff09;A表全部 &#xff08;3&#xff09;A表- A∩B 3、右连接&#xff1a;A right join B on &#xff08;4&#xff09;B表全部 &#…...

查缺补漏三:事务隔离级别

什么是事务&#xff1f; 事务就是一组操作的集合&#xff0c;事务将整组操作作为一个整体&#xff0c;共同提交或者共同撤销 这些操作只能同时成功或者同时失败&#xff0c;成功即可提交事务&#xff0c;失败就执行事务回滚 MySQL的事务默认是自动提交的&#xff0c;一条语句执…...

没有她的通讯录(C语言实现)

&#x1f680;write in front&#x1f680; &#x1f4dd;个人主页&#xff1a;认真写博客的夏目浅石. &#x1f381;欢迎各位→点赞&#x1f44d; 收藏⭐️ 留言&#x1f4dd; &#x1f4e3;系列专栏&#xff1a;夏目的C语言宝藏 &#x1f4ac;总结&#xff1a;希望你看完之…...

Spring Security 从入门到精通

前言 Spring Security 是 Spring 家族中的一个安全管理框架。相比与另外一个安全框架Shiro&#xff0c;它提供了更丰富的功能&#xff0c;社区资源也比Shiro丰富。 一般来说中大型的项目都是使用SpringSecurity 来做安全框架。小项目有Shiro的比较多&#xff0c;因为相比与Spr…...

当Logo消失,品牌资产还剩多少?

这个问题问得直接——品牌费尽心思把Logo放大、放正、放在C位&#xff0c;可如果有一天消费者真的“看不见”它&#xff0c;品牌还剩下什么&#xff1f;答案取决于品牌建设的本质&#xff1a;是在做识别符号&#xff0c;还是在做价值沉淀。1. 认知资产&#xff1a;剩不下什么Lo…...

Qt新手必看:MinGW和MSVC构建套件到底怎么选?保姆级对比指南

Qt构建套件选择指南&#xff1a;MinGW与MSVC深度对比与实战决策 刚接触Qt开发的初学者&#xff0c;往往在配置开发环境的第一步就陷入选择困难——面对MinGW和MSVC这两个构建套件选项&#xff0c;究竟该如何抉择&#xff1f;这个看似简单的选择背后&#xff0c;实则关系到后续开…...

【高精度气象】预报误差不是技术小问题,而是2026新能源企业利润表里的隐形黑洞

当一场风速预测偏差让电厂在现货市场中多交千万罚金&#xff0c;当一次辐照度低估导致交易策略全盘错配——气象误差&#xff0c;正在从“技术指标”变成“财务黑洞”。2026年3月&#xff0c;一份来自陕西能源气象服务的最新数据显示&#xff0c;基于AI模型的风电场功率预测偏差…...

Frida启动报错invalid address?手把手教你修复Android逆向工程环境

Frida启动报错invalid address&#xff1f;手把手教你修复Android逆向工程环境 当你满怀期待地启动Frida准备进行Android应用动态分析时&#xff0c;控制台突然抛出"invalid address"错误&#xff0c;那种感觉就像赛车手在起跑线上发现引擎故障。这个看似简单的错误信…...

科研绘图没美术功底?只需这一招

相信很多科研同仁都有过这样的痛点&#xff1a;明明实验数据很漂亮&#xff0c;创新点也足够突出&#xff0c;却因为一张制作粗糙、配色杂乱的插图&#xff0c;让论文的整体质量大打折扣。甚至在一些高水平期刊的审稿过程中&#xff0c;精美的图像往往能给审稿人留下更好的第一…...

罗斯蒙特RoseMount手操器TREXLFPKL9S1

罗斯蒙特475手操器是一款由艾默生&#xff08;Emerson&#xff09;推出的高性能现场通讯设备&#xff0c;广泛应用于工业自动化领域&#xff0c;用于配置、校准和诊断HART及Foundation Fieldbus协议的智能仪表设备。它具备彩色图形界面、蓝牙通信、强大的现场诊断功能和可用户升…...

保姆级教程:Arduino IDE离线安装ESP32开发板支持包(附稳定镜像源)

Arduino IDE离线安装ESP32开发板支持包全攻略 对于国内开发者来说&#xff0c;Arduino IDE安装ESP32开发板支持包常常会遇到网络连接不稳定、下载速度慢甚至完全无法访问的问题。本文将提供一套完整的离线安装方案&#xff0c;通过国内镜像源和分步操作指南&#xff0c;确保即…...

用2万小时人类视频预训练机器人,一场豪赌还是必经之路?

先说结论核心验证了“人类数据缩放定律”&#xff1a;在灵巧操作任务上&#xff0c;模型性能随人类预训练数据量对数线性增长&#xff0c;为数据策略提供了可预测的依据。成功的关键在于“两阶段迁移”设计&#xff1a;用大规模、廉价但“嘈杂”的人类数据奠基通用结构&#xf…...

手把手教你用Python+AI大模型,把Yapi接口文档变成自动化测试脚本(附避坑指南)

用Python与大模型实现Yapi接口自动化测试的工程化实践 在中小型技术团队中&#xff0c;接口测试往往是质量保障的薄弱环节。传统手工编写测试用例的方式不仅耗时耗力&#xff0c;更难以应对快速迭代的开发节奏。本文将分享如何利用Python生态与AI大模型能力&#xff0c;将Yapi平…...

超越传统RPA!用Magentic-UI实现人机协作式网页自动化(含工作流调试技巧)

超越传统RPA&#xff1a;Magentic-UI的人机协作革命与实战进阶 当传统RPA工具还在追求"全自动"的乌托邦时&#xff0c;微软开源的Magentic-UI已经开辟了一条更务实的道路——人机协同智能。这个基于多智能体架构的系统不是要取代人类&#xff0c;而是通过"可干预…...