python学习 --- 列表基础

news2025/1/21 10:16:21

目录

一、列表的创建

1、使用中括号

2、使用中括号和内置函数list()

二、列表的特点

三、获取列表中元素

1、获取列表中指定元素的索引-index()

2、获取列表中单个元素

 3、获取列表中多个元素-切片

 四、列表元素的查询和遍历

1、判断指定元素在列表中是否存在

2、遍历

 五、列表元素的增删改

1、增加操作

 2、删除操作

 3、修改操作

 六、列表的排序

1、调用sort()方法

2、调用内置函数sorted()

 七、列表生成式


一、列表的创建

1、使用中括号

lst = ['hello', 'world', 98]

2、使用中括号和内置函数list()

lst = list(['hello', 'world', 98])

内部:

二、列表的特点

  • 列表元素按顺序有序排序
  • 索引映射唯一个数据
  • 列表可以存储重复数据
  • 任意数据类型混存
  • 根据需要动态分配和回收内存

三、获取列表中元素

1、获取列表中指定元素的索引-index()

lst = ['hel1o','world',98,'hel1o']
print(lst.index('hello'))#如果列表中有相同元素只返回列表中相同元素的第一个元素的索引
print(lst.index('Python'))#ValueError:'Python'is not in list
print(lst.index('hello',1,3))#ValueError:hello'is not in list   'world',98
  • 如查列表中存在N个相同元素,只返回相同元素中的第一个元素的索引
  • 如果查询的元素在列表中不存在,则会抛出ValueError
  • 还可以在指定的starti和stop之间进行查找 

2、获取列表中单个元素

  • 正向索引从0到N-1     举例:Ist[0]
  • 逆向索引从-N到-1    举例:Ist[-N]
  • 指定索引不存在,抛出IndexError
lst = ['hello', 'world', 98]
print(lst[0], lst[-3])  # 结果:hello hello

 3、获取列表中多个元素-切片

steps:步长(每隔steps-1个数据进行截取,2则表示每隔1个数进行截取,1则表示每隔0个数进行截取) 

steps的正负号表示截取的方向(正表示从start开始向前截取,负表示从start开始向后截取)

每隔0个进行截取,所以连续

每隔0个进行截取,所以连续

情况举例------>

lst = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print(lst[1:4:1])#[1, 2, 3]
print(lst[1:6:2])#[1, 3, 5]
print(lst[1:4])#[1, 2, 3]
print(lst[:4:1])#[0, 1, 2, 3]
print(lst[1::1])#[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print(lst[:-3:-1])#[10, 9]
print(lst[-1::-1])#[10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

 四、列表元素的查询和遍历

1、判断指定元素在列表中是否存在

lst = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print(2 in lst)#True
print(2 not in lst)#False

2、遍历

 五、列表元素的增删改

1、增加操作

append(),extend(),insert() ------>

lst1 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
lst2  =["wy","hello"]

lst1.append(100)
print("append",lst1)#append [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 100]

lst1.append(lst2)
print("append",lst1)#append [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 100, ['wy', 'hello']]

lst1.extend(lst2)
print("extend",lst1)#extend [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 100, ['wy', 'hello'], 'wy', 'hello']

lst2.insert(1,"insert")
print("insert",lst2)#insert ['wy', 'insert', 'hello']

切片------>

lst1 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
lst2  =["wy","hello"]
#在任意位置添加N多个元素
print("lst1[1:]",lst1[1:])#lst1[1:] [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
lst1[1:] = lst2
#解释上一行:选中为lst1从1到最后,步长为1,这部分变成了lst2
print("切片",lst1) #切片 [0, 'wy', 'hello']

 2、删除操作

remove()------>

lst = [1, 2, 3, 2, 4, 5, 6, 7, 8, 9, 10]
lst.remove(2)
print(lst)
#[1, 3, 2, 4, 5, 6, 7, 8, 9, 10]

pop()------>

lst = [1, 2, 3, 2, 4, 5, 6, 7, 8, 9, 10]
lst.pop(2)
print(lst)
#[1, 2, 2, 4, 5, 6, 7, 8, 9, 10]

切片------>

lst = [1, 2, 3, 2, 4, 5, 6, 7, 8, 9, 10]
lst[1:4] = []
print(lst)
#[1, 4, 5, 6, 7, 8, 9, 10]

 clear()------>

lst = [1, 2, 3, 2, 4, 5, 6, 7, 8, 9, 10]
lst.clear()
print(lst)
#[]

 del------>

lst = [1, 2, 3, 2, 4, 5, 6, 7, 8, 9, 10]
#将列表对象删除
del lst
print(lst)
#NameError: name 'lst' is not defined

 3、修改操作

(1)为指定索引的元素赋予一个新

lst1 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
lst1[0] = 20
print(lst1)
#[20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

(2)为指定的切片赋予一个新值(就是增加中的切片操作)

lst1 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
lst1[1:4:1] = ["hello",33,77,"x"]
print(lst1)
#[0, 'hello', 33, 77, 'x', 4, 5, 6, 7, 8, 9, 10]

 六、列表的排序

1、调用sort()方法

调用sort()方法,列有中的所有元素默认按照从小到大的顺序进行排序,可以指定
reverse=True,进行降序排序

lst1 = [0, 1, 3, 4, 2, 7, 8, 9, 10, 5, 6]
lst1.sort()#升序,不指定默认False
print(lst1)
#[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

lst1.sort(reverse=True)#降序
print(lst1)
#[10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

2、调用内置函数sorted()

调用内置函数sorted(),可以指定reverse=True,进行降序排序,原列表不发生改变

lst1 = [0, 1, 3, 4, 2, 7, 8, 9, 10, 5, 6]
new_lst1 = sorted(lst1)
de_lst1 = sorted(lst1,reverse=True)
#原列表不发生改变
print(lst1)
#[0, 1, 3, 4, 2, 7, 8, 9, 10, 5, 6]

print(new_lst1)
#[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

print(de_lst1)
#[10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

 七、列表生成式

lst = [i*i for i in range(1,10)]
print(lst)
#[1, 4, 9, 16, 25, 36, 49, 64, 81]

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

为什么使用 golang http包 会把 linux 句柄打满?

最近工作的时候一个接入服务需要测性能测试,万万没想到测出了一个把 linux 句柄打满的问题 具体是什么问题呢,我们一起来看看 正常操作 项目中,有一些 http 请求是这样写的: 请求 https 的地址,为了绕过 tls &…

【论文精读】基于流序列的基于残差图卷积网络的匿名网络流量识别

Flow Sequence-Based Anonymity Network Traffic Identification with Residual Graph Convolutional Networks 基于流序列的基于残差图卷积网络的匿名网络流量识别 摘要 从网络流量中识别匿名服务是网络管理和安全的关键任务。 目前,一些基于深度学习的工作已经…

JavaScript 事件案例

文章目录JavaScript 事件案例统计输入字符数量验证输入内容搜索框复选框的全选和反选下拉列表自定义鼠标右键菜单ctrlenter发送消息规定范围内拖拽元素两元素碰撞切换图片内容滚动条鼠标滚动缩放图片JavaScript 事件案例 统计输入字符数量 <!DOCTYPE html> <html>…

一文看懂C/C++编译过程以及g++编译选项

前言在linux系统下&#xff0c;输入man g&#xff0c;即可以看到gcc官方文档对gcc编译选项的详细说明&#xff0c;本文也主要是在官方文档基础上&#xff0c;对gcc/g编译过程和一些编译选项进行了总结和说明&#xff0c;希望对学习这块内容的人有所帮助。1、编译的四个阶段一般…

Cannot read properties of null (reading ‘pickAlgorithm‘)

2568 verbose node v16.15.0 2569 verbose npm v8.5.5 2570 error Cannot read properties of null (reading ‘pickAlgorithm’) 2571 verbose exit 1 2572 timing npm Completed in 20918ms 2573 verbose unfinished npm timer reify 1673607123032 2574 verbose unfinished …

openSUSE-Leap-15.4系统分析和微调指南-略读笔记

openSUSE-Leap-15.4系统分析和微调指南——略读笔记 openSUSE Leap 15.4 System Analysis and Tuning Guide SUSE 产品文档-中文(简体)-下载中心 https://documentation.suse.com/zh-cn/sled/15-SP4/ 单击English选择简体中文——单击PDF是可以下载的&#xff0c;例如System A…

学习记录:featurecounts

Input one or more files of aligned reads (short or long reads) in either SAM or BAM formata list of genomic features in either Gene Transfer Format (GTF) or General Feature Format (GFF) or Simplified Annotation Format (SAF)比对后产生的bam或者sam文件&#…

一次简单的本机调试webshell的经历

环境安装 安装php和nginx&#xff0c;不再赘述 apt-get update apt-get install nginx这里我的版本是php7.4 # php -v PHP 7.4.33 (cli) (built: Jan 6 2023 16:10:36) ( NTS ) Copyright (c) The PHP Group Zend Engine v3.4.0, Copyright (c) Zend Technologies with Zend …

Optional最佳实践(对象操作利器)

前篇文章已经总结了集合的操作是如何在Java8优化的&#xff1a;函数编程和Stream_txxs的博客-CSDN博客&#xff0c;这篇文章总结一下对于对象如何利用Java8进行操作&#xff0c;这样对于大部分代码都可以用Java8的语法进行操作了。 一、 Optional 是什么 Optional 的作者 Bri…

收购淘米后,MMV加速走向迪士尼式IP开发之旅

一家纯正的元宇宙控股公司与经典IP公司碰撞&#xff0c;能擦出怎样的火花&#xff1f;这个问题或将在不远的将来得出答案。 1月12日晚间&#xff0c;刚在一周前以SPAC方式登陆纳斯达克的MMV&#xff08;MultiMetaVerse&#xff0c;即“元宇宙控股”&#xff09;&#xff0c;宣…

C语言进阶——动态内存管理

目录 一. 为什么存在动态内存分配 二. 动态内存函数 1.malloc 2.free 3.calloc 4.realloc 三. 常见的动态内存错误 一. 为什么存在动态内存分配 在此之前&#xff0c;我们为数组开配空间都是这样的 int nums[10]{0}; 但这样会有很大的局限性 1. 空间开辟大…

十三、Gtk4-TfeTextView函数

TfeTextView相关函数在这一章节介绍 1 tfetextview.h 头文件tfetextview.h提供了: TfeTextView的类型&#xff0c;是TFE_TYPE_TEXT_VIEW。G_DECLARE_FINAL_TYPE的扩展包含了一些有用的宏。定义了open-response信号的常量。tfetextview.c的公共函数被声明。 因此&#xff0c…

「布道人生」第一期:阿里云DevOps资深专家章屹

本期嘉宾——章 屹 阿里云 DevOps 资深专家。2012 年加入阿里巴巴&#xff0c;十年如一日专注在 DevOps 领域的理论、咨询、解决方案和产品技术工作上。作为 CIO 学院和阿里云大学的讲师&#xff0c;为众多大型企业管理高层讲授 DevOps 课程&#xff0c;探讨通过 DevOps 提升企…

drawCell | 不会画细胞结构图就用这个R包吧~ Super Nice!~

1写在前面 我们在paper中经常需要画到细胞结构图&#xff0c;新手ppt一点一点画&#xff0c;高手可能会用AI手搓&#xff0c;土豪直接使用BioRender。&#x1f912; 今天给大家大家分享一个代码画细胞结构图的R包&#xff0c;如果你觉得自己不会写代码&#xff0c;不想看了&…

python基础篇之元组、字典(增删改查)

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

震旦ad188复印机报机器故障维修召唤c0211

故障现象: 手送走纸的机器出现嗒嗒的异响,走几张还会跳0211,经常出现卡纸等现象,或者报C0211; 故障分析: 维修召唤C0211可能是感光鼓和载体寿命到期࿰

云原生|Java二级高速缓存架构设计

为什么使用缓存 缓存&#xff0c;主要有两个用途&#xff1a;提高服务性能和并发。 缓存是提高服务响应速度最快的方式之一。 我们设计缓存的目的是减少用户直接访问磁盘、访问网络带来的性能损耗&#xff0c;把磁盘、网络请求的内容存在在内存中&#xff0c;提升应用程序的…

【Doris】Doris数据库最新版安装方法,详细图文教程

环境安装 Doris 作为一款开源的 MPP 架构 OLAP 数据库&#xff0c;能够运行在绝大多数主流的商用服务器上。为了能够充分运用 MPP 架构的并发优势&#xff0c;以及 Doris 的高可用特性&#xff0c;我们建议 Doris 的部署遵循以下需求&#xff1a; Linux 操作系统版本需求Linu…

研讨会回顾 | UI自动化测试现场演示

2022年12月6日&#xff0c;龙智与软件测试自动化“领导者”SmartBear联合举办了主题为“如何通过自动化测试实现降本、增效与提质”的在线研讨会。此次研讨会中&#xff0c;龙智技术工程师邱洁玉现场演示了使用UI自动化测试的过程&#xff0c;并简要介绍了API的自动化测试。 软…

时钟频率与时间单位的换算

1. 频率、时间 各自的单位的关系 频率&#xff1a; 1GHz 1000MHz、1MHz 1000KHz、1KHz 1000Hz 1GHz 103MHz 106KHz 109Hz 时间&#xff1a; 1s 1000ms、1ms 1000μs、1μs 1000ns [注]&#xff1a;s (秒)、ms (毫秒)、μs (微秒)、ns (纳秒)。 2. 时间 和 频率 的换…