python入门笔记4

Python 中的列表(List)是 有序、可变 的序列类型,用方括号 [] 定义。以下是列表的核心语法和常用操作:

list1 = ['Google', 'W3Cschool', 1997, 2000]
list2 = [7, 2, 3, 4, 5, 6, 1 ]
#索引操作
print ("list1 first: ", list1[0])
print ("list2 last: ", list2[-1])

#切片与拼接操作
print ("list1的前3项: ", list1[0:3])
print ("list1的2、3项: ", list1[1:3])
list2 +=list1
print("拼接后 list2:",list2)
#扩充列表
list2.extend([4,5])
print("扩充后 list2:",list2)

#更新操作
print ("list1的第三个元素为: ", list1[2])
list1[2] = "1998" #直接对想要修改的数据项赋上一个新值即可修改该数据项
print ("list1的第三个元素为: ", list1[2])
#添加元素:末尾添加
list1.append(2021) #append()可以在列表后追加一项列表项
print ("追加列表项后的list1: ", list1)
#添加元素:按索引位置添加
list1.insert(2,1999)
print ("list1 插入后现在为: ", list1)

#删除:按索引删除
del list1[0] #del可以删掉一个元素
print ("删除列表项后的list1: ", list1)
#按值删除
list1.remove(2021)
print ("list1 现在为: ", list1)

输出:

list1 first:  Google
list2 last:  1
list1的前3项:  ['Google', 'W3Cschool', 1997]
list1的2、3项:  ['W3Cschool', 1997]
拼接后 list2: [7, 2, 3, 4, 5, 6, 1, 'Google', 'W3Cschool', 1997, 2000]
扩充后 list2: [7, 2, 3, 4, 5, 6, 1, 'Google', 'W3Cschool', 1997, 2000, 4, 5]
list1的第三个元素为:  1997
list1的第三个元素为:  1998
追加列表项后的list1:  ['Google', 'W3Cschool', '1998', 2000, 2021]
list1 插入后现在为:  ['Google', 'W3Cschool', 1999, '1998', 2000, 2021]
删除列表项后的list1:  ['W3Cschool', 1999, '1998', 2000, 2021]
list1 现在为:  ['W3Cschool', 1999, '1998', 2000]

以下来自deepseek生成

这里看看高级特性:

# 列表推导式(快速生成列表)
squares = [x**2 for x in range(5)]  # [0, 1, 4, 9, 16]

# 条件过滤:生成0-9之间的偶数
evens = [x for x in range(10) if x%2 == 0]  # [0,2,4,6,8]

# 嵌套推导式
matrix = [[1,2], [3,4]]
flatten = [num for row in matrix for num in row]  # [1,2,3,4]

前两个好理解。嵌套推导式不好理解,格式如下:

[表达式 for 外层元素 in 外层可迭代对象 for 内层元素 in 内层可迭代对象]

debug看看,是外层的row 先取一个元素[1,2],内层num再去遍历这个[1,2].

主要是处理多维数据或者数据清洗转换用,或者生成笛卡尔积。代码很简洁就是不直观,理解起来有点困难。

嵌套式还有一种方式

[[表达式 for subitem in subiterable] for item in iterable]

# 原始二维列表
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

# 使用嵌套列表推导式生成新二维列表
squared_matrix = [[x**2 for x in row] for row in matrix]

# 打印结果
print(squared_matrix)

输出:[[1, 4, 9], [16, 25, 36], [49, 64, 81]]

关于嵌套推导的复杂应用:推荐大佬的Python列表推导式:嵌套用法详解_python中列表推导复杂用法-CSDN博客

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

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

相关文章

玩转SpringCloud Stream

背景及痛点 现如今消息中间件(MQ)在互联网项目中被广泛的应用,特别是大数据行业应用的特别的多,现在市面上也流行这多个消息中间件框架,比如ActiveMQ、RabbitMQ、RocketMQ、Kafka等,这些消息中间件各有各的优劣,但是想…

Window下Redis的安装和部署详细图文教程(Redis的安装和可视化工具的使用)

文章目录 Redis下载地址:一、zip压缩包方式下载安装 1、下载Redis压缩包2、解压到文件夹3、启动Redis服务4、打开Redis客户端进行连接5、使用一些基础操作来测试 二、msi安装包方式下载安装 1、下载Redis安装包2、进行安装3、进行配置4、启动服务5、测试能否正常工…

SOME/IP--协议英文原文讲解9

前言 SOME/IP协议越来越多的用于汽车电子行业中,关于协议详细完全的中文资料却没有,所以我将结合工作经验并对照英文原版协议做一系列的文章。基本分三大块: 1. SOME/IP协议讲解 2. SOME/IP-SD协议讲解 3. python/C举例调试讲解 4.2.1.4 T…

容器网络(三)- calico网络IPIP模式

一、前置知识 calico的IPIP模式使用到了tun设备,先来了解下什么是tun设备,它的作用是什么,以及使用到tun设备的IPIP隧道是如何工作的。 1.1 tun设备 tun是网络层的虚拟网络设备,可以收发第三层数据报文包,如IP封包&…

网络原理-HTTP/HTTPS

文章目录 HTTPHTTP 是什么?理解“应用层协议”理解 HTTP 协议的⼯作过程HTTP 协议格式抓包⼯具的使用抓包⼯具的原理抓包结果协议格式总结 HTTP 请求(Request)认识 URLURL 的基本格式关于URL encode 认识“⽅法”(method&#xff…

sentinel集成nacos做持久化配置

sentinel提供了非常强大的控制台来提供流控等功能,但是控制台只是临时的配置,想要将流控配置永久的保存,或者在项目启动的时候就加载,不需要手动设置,就需要使用到nacos与sentinel做集成配置。这里都是不变代码&#x…

网络安全技术pat实验 网络安全 实验

🍅 点击文末小卡片 ,免费获取网络安全全套资料,资料在手,涨薪更快 网络安全实验3 前言Kali 常用指令工具教程 ettercap 基本使用 一、口令破解 John the ripper 破解 linux 密码l0phtcrack7 破解 windows 密码John 破解 zip 压…

大模型工具大比拼:SGLang、Ollama、VLLM、LLaMA.cpp 如何选择?

简介:在人工智能飞速发展的今天,大模型已经成为推动技术革新的核心力量。无论是智能客服、内容创作,还是科研辅助、代码生成,大模型的身影无处不在。然而,面对市场上琳琅满目的工具,如何挑选最适合自己的那…

个人简历html网页模板,科技感炫酷html简历模板

炫酷动效登录页 引言 在网页设计中,按钮是用户交互的重要元素之一。这样一款黑色个人简历html网页模板,科技感炫酷html简历模板,设计效果类似科技看板图,可帮您展示技能、任职经历、作品等,喜欢这种风格的小伙伴不要犹豫哦。该素材呈现了数据符号排版显示出人形的动画效…

解决 Mac 只显示文件大小,不显示目录大小

前言 在使用 mac 的时候总是只显示文件的大小,不显示文件夹的大小,为了解决问题可以开启“计算文件夹”。 步骤 1.进入访达 2.工具栏点击“显示”选项,点击 “查看显示选项” 3.勾选 显示“资源库"文件夹 和 计算所有大小 或者点击…

UE5.3 C++ 通过Spline样条实现三维连线,自己UV贴图。

一.制作了基于USplineComponent的画线插件,就是我们常说的样条线。 直接看怎么用,关于插件实现细节,后续会更新,看思路就行。通过ID,管理每一条线。移除删掉上一帧的线条Mesh。第一个点,是本身直接放过去。第二个点是…

[qt5学习笔记]Application Example示例程序源码解析

开发环境问题 vs2022下直接打开ui、ts文件失败 解决办法如下图, 设置designer独立运行。估计是嵌入运行存在些许bug。 同理,ts编辑工具linguist也存在这个问题。 qrc rc的编辑嵌入编辑都正常,但分离式更稳定可靠。 qt creator编译失败 原…

Ubuntu 系统 LVM 逻辑卷扩容教程

Ubuntu 系统 LVM 逻辑卷扩容教程 前言 在 Linux 系统中,LVM(Logical Volume Manager)是一种逻辑卷管理工具,允许管理员动态调整磁盘空间,而无需重启系统。 本文将详细介绍如何使用 LVM 扩容逻辑卷,以实现…

Javascript网页设计实例:通过JS实现上传Markdown转化为脑图并下载脑图

功能预览 深度与密度测试 对于测试部分,分别对深度和密度进行了测试: 注意!!!!!!!只实现了识别Markdown中的#代表的层级,所以不能使用其余标识符&#xff0…

什么是tomcat

什么是tomcat Tomcat 是由Apache软件基金会开发的一个开源的轻量级Web服务器,主要用于部署和运行Java Servlet和JavaServer Pages (JSP) 技术构建的Web应用。以下是关于Tomcat的一些关键点: Java Web应用容器:Tomcat作为Servlet容器&#x…

一.AI大模型开发-初识机器学习

机器学习基本概念 前言 本文主要介绍了深度学习基础,包括机器学习、深度学习的概念,机器学习的两种典型任务分类任务和回归任务,机器学习中的基础名词解释以及模型训练的基本流程等。 一.认识机器学习 1.人工智能和机器学习 人工智能&am…

Redis未授权访问漏洞原理

redis未授权访问漏洞 目录 redis未授权访问漏洞一、Redis介绍二、redis环境安装三、漏洞原理四、漏洞复现4.1 webshell提权4.2redis写入计划任务反弹shell4.3 ssh key免密登录4.4 Redis基于主从复制的RCE方式 五、Redis加固建议 一、Redis介绍 Redis,全称为Remote …

什么是网络安全?网络安全防范技术包括哪些?

伴随着互联网的发展,它已经成为我们生活中不可或缺的存在,无论是个人还是企业,都离不开互联网。正因为互联网得到了重视,网络安全问题也随之加剧,给我们的信息安全造成严重威胁,而想要有效规避这些风险&…

使用VSCODE开发C语言程序

使用vscode配置C语言开发环境 一、安装VSCODE 1、下载vscode ​ 从官方网站(https://code.visualstudio.com/Download)上,下载windows版本的vscode 2、安装vscode ​ 下载完毕后,按照提示进行安装即可(尽可能不要安…

轴承故障特征—SHAP 模型 3D 可视化

往期精彩内容: Python-凯斯西储大学(CWRU)轴承数据解读与分类处理 基于FFT CNN - BiGRU-Attention 时域、频域特征注意力融合的轴承故障识别模型-CSDN博客 基于FFT CNN - Transformer 时域、频域特征融合的轴承故障识别模型-CSDN博客 P…