python基础——列表【创建,下标索引,常见操作方法】

news2024/11/18 6:43:39

📝前言:
这篇文章主要讲解一下python中常见的数据容器之一——列表
本文主要讲解列表的创建以及我们常用的列表操作方法

🎬个人简介:努力学习ing
📋个人专栏:C语言入门基础以及python入门基础
🎀CSDN主页 愚润求学
🌄每日鸡汤:且视他人之疑目如盏盏鬼火,大胆去走你的夜路


文章目录

  • 一,什么是列表
  • 二,列表的创建
  • 三,列表的下标索引访问
    • 1,访问普通的列表
    • 2,访问嵌套的列表
  • 四,列表的常见操作方法
    • 1,查找元素(index)
    • 2,增加元素
      • (1)在列表末尾追加(append)
      • (2)在队尾追加多个元素(extend)
      • (3)在指定位置插入元素(insert)
    • 3,删除元素
      • (1)直接删除(del)
      • (2)删除并返回(pop)
      • (3)删除对应内容(remove)
      • (4)清空列表(clear)
    • 4,统计某元素出现的次数(count)
    • 9, 统计列表全部元素的个数(len)

一,什么是列表

首先,列表是什么?
在Python中,列表(List)是一种有序、可变的集合数据类型,可以存储任意类型的元素,包括数字、字符串、布尔值、甚至其他列表。列表允许重复的元素,也可以包含混合类型的元素。

从上面我们可以提取出列表的以下几个特点:
1,可以容纳多个数据(上限为2**63-1、9223372036854775807个)
2,可以容纳不同类型的数据(混装)
3,数据是有序存储的(有下标序号)
4,允许重复数据存在
5,可以修改(增加或者删除元素)

二,列表的创建

列表的创建是通过方括号 [] 以及逗号分隔符,来实现的。例如:

my_list = [1, 2, 3, "apple", True] # 这里创建了一个存放着不同数据类型的列表

三,列表的下标索引访问

如果对下标索引不太了解的朋友可以先看这篇文章C语言——数组,里面有对下标索引的详细介绍。

1,访问普通的列表

在python中,元素的下标:从前向后,是从0开始,但是也可以反向索引:从后向前,是从-1开始
以下是一个使用列表下标索引的简单示例:

# 创建一个列表
my_list = [1, 2, 3, 4, 5]

# 使用下标索引来获取列表中的元素
first_element = my_list[0]  # 结果是1
second_element = my_list[1]  # 结果是2

在这个例子中,我们首先创建了一个包含5个整数的列表 my_list
然后,我们使用下标索引 [0][1] 来获取列表中的第一个和第三个元素,并将它们分别赋值给变量 first_elementsecond_element

(注意:超出列表范围的索引会引发错误)

2,访问嵌套的列表

例如:

# 定义一个嵌套的列表
nested_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

# 访问嵌套列表中的元素
first_element = nested_list[0][0]  # 第一个列表中的第一个元素
second_element = nested_list[1][2]  # 第二个列表中的第三个元素
third_list = nested_list[2]  # 第三个列表

print(first_element, second_element, third_list)

输出结果:
在这里插入图片描述
[0][0]:先找外层列表的第一个元素——列表,再找内层第一个列表的第一个元素
[1][2]:先找外层列表的第二个元素——列表,再找内层第二个列表的第三个元素
[3]:外层列表的第三个元素——列表

四,列表的常见操作方法

1,查找元素(index)

index()方法:用于从列表中查找指定元素的索引,但是如果列表不包含此元素,则会引发 ValueError
语法:

list.index(value, [start, [stop]]) # []代表可选

value:要从列表中查找的元素。
start:开始查找的位置。默认值为0。
stop:停止查找的位置。默认值为列表的长度。
返回值:返回指定元素在列表中的索引。

示例:

my_list = [1, 2, 3, 4, 5]

# 查找元素3的索引
index = my_list.index(3)
print(index)  # 输出 2

(注意:如果列表中有多个相同的指定元素,index() 方法仅返回第一个出现该元素的索引。)

2,增加元素

(1)在列表末尾追加(append)

append()方法:将一个值添加到列表的末尾,并返回修改后的列表。
(注意:append()方法是直接修改原始列表,而不是创建一个新列表。)
语法:

list.append(element)

list 是一个列表对象。
element 是要添加到列表末尾的元素。

示例一:

my_list = [1, 2, 3]
my_list.append(4)
print(my_list)  # 输出:[1, 2, 3, 4]

添加的元素还可以是一个列表
示例二:

my_list = [1, 2, 3]
sub_list = [4, 5]
my_list.append(sub_list)
print(my_list)  # 输出:[1, 2, 3, [4, 5]]

(2)在队尾追加多个元素(extend)

extend() 方法来扩展列表,即在列表的末尾添加其他列表或其他元素。
(注意:extend() 方法会直接修改原始列表,而不是创建一个新的列表。)
语法:

list.extend(iterable)

iterable:要添加到列表末尾的元素序列。(不可是字符串或者字典)

示例:

# 创建一个列表
lst = [1, 2, 3]

# 使用 extend() 方法扩展列表
lst.extend([4, 5, 6])  # 将另一个列表扩展到原始列表的末尾
print(lst)  # 输出:[1, 2, 3, 4, 5, 6]

# 尝试扩展一个字符串,会引发 TypeError
try:
    lst.extend("Hello")
except TypeError as e:
    print(f"Error: {e}")

(3)在指定位置插入元素(insert)

insert() 方法来插入一个元素到指定的位置。
(注意:insert() 方法会直接修改原始列表,而不是创建一个新的列表。)
语法

list.insert(index, element)

index:指定插入的位置。(下标)
element:要插入的元素。

示例:

# 创建一个列表
lst = [1, 2, 3, 4]

# 使用 insert() 方法插入元素
lst.insert(1, 1.5)  # 在索引 1 处插入 1.5
print(lst)  # 输出:[1, 1.5, 2, 3, 4]

3,删除元素

(1)直接删除(del)

del 语句用于从列表中删除指定下标的元素,不会返回被删除的元素。
(直接修改原始列表)
语法:

del list[下标]

示例:

lst = [1, 2, 3, 4, 5]
del lst[1]  # 删除索引为1的元素,即2
print(lst)  # 输出:[1, 3, 4, 5]

(2)删除并返回(pop)

pop() 方法用于从列表中删除指定下标的元素,会返回被删除的元素。
(直接修改原始列表)
语法:

list.pop(下标)

示例:

lst = [1, 2, 3, 4, 5]
removed_element = lst.pop(1)  # 删除索引为1的元素,并返回该元素
print(lst)  # 输出:[1, 3, 4, 5]
print(removed_element)  # 输出:2

(3)删除对应内容(remove)

remove() 方法用于删除某元素在列表中的第一个匹配项,如果元素不在列表中,这个方法不会引发错误。
(直接修改原始列表)
语法:

list.remove(元素)

示例:

numbers = [1, 2, 3, 4, 5, 3]
numbers.remove(3)
print(numbers)  # 输出 [1, 2, 4, 5, 3]

(4)清空列表(clear)

clear() 方法用于清空列表中的所有元素。
语法:

list.clear()

示例:

numbers = [1, 2, 3, 4, 5]
numbers.clear()
print(numbers)  # 输出 []

4,统计某元素出现的次数(count)

count()统计某元素出现的数量
语法:

list.count(元素)

示例:

fruits = ["apple", "banana", "cherry", "apple"]
count = fruits.count("apple")
print(count)  # 输出 2

9, 统计列表全部元素的个数(len)

len()用于统计列表中全部元素的个数
语法:

len(列表)

示例:

fruits = ["apple", "banana", "cherry"]
count = len(fruits)
print(count)  # 输出 3

下面做一个小总结,方便大家随时查阅功能:
在这里插入图片描述


🌈我的分享也就到此结束啦🌈
要是我的分享也能对你的学习起到帮助,那简直是太酷啦!
若有不足,还请大家多多指正,我们一起学习交流!
📢公主,王子:点赞👍→收藏⭐→关注🔍
感谢大家的观看和支持!祝大家都能得偿所愿,天天开心!!!

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

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

相关文章

第十四届蓝桥杯省赛真题 Java 研究生 组【原卷】

文章目录 发现宝藏【考生须知】试题 A: 特殊日期试题 B: 与或异或试题 C: 棋盘试题 D: 子矩阵试题 E : \mathrm{E}: E: 互质数的个数试题 F: 小蓝的旅行计划试题 G: 奇怪的数试题 H: 太阳试题 I: 高塔试题 J \mathrm{J} J : 反异或 01 串 发现宝藏 前些天发现了一个巨牛的人…

【UE5】非持枪状态蹲姿移动的动画混合空间

项目资源文末百度网盘自取 在BlendSpace文件夹中单击右键选择动画(Animation)中的混合空间(Blend Space) ,选择SK_Female_Skeleton,命名为BS_NormalCrouch 打开BS_NormalCrouch 水平轴表示角色的方向,命名为Direction,方向的最…

Java毕业设计-基于springboot开发的“智慧食堂”设计与实现-毕业论文+答辩PPT(附源代码+演示视频)

文章目录 前言一、毕设成果演示(源代码在文末)二、毕设摘要展示1.开发说明2.需求分析3、系统功能结构 三、系统实现展示1、系统登录2、系统功能模块3、管理员功能模块 四、毕设内容和源代码获取总结 Java毕业设计-基于springboot开发的“智慧食堂”设计与…

AI预测福彩3D第8弹【2024年3月13日预测--新算法重新开始计算第四次测试】

今天,先告诉大家一个好消息,经过修正后的算法,经过昨天第3次预测,成功命中了7码。 昨天的开奖结果是 3 7 7,我的预测结果均是前7码命中,当然,前6码也命中了。如果再配合缩水软件的话&#xff0c…

基于Python的中医药知识问答系统设计与实现

[简介] 这篇文章主要介绍了基于Python的中医药知识问答系统的设计与实现。该系统利用Python编程语言,结合中医药领域的知识和技术,实现了一个功能强大的问答系统。文章首先介绍了中医药知识的特点和传统问答系统的局限性,然后提出了设计思路…

手把手教你使用Python第三方模块

1.第三方模块 一般是别人解决特定问题的功能进行了封装,可以通过安装直接使用 注意 第三方模块需要先安装,才能使用 常见的安装方式:通过pip工具或者通过pycharm编辑器进行安装 2.pip指令安装 pip -V # 查看pip的版本 pip 23.2.1 fr…

深度解析:cache的基本概念原理扫盲

引流关键词:缓存,高速缓存,cache, CCI,CMN,CCI-550,CCI-500,DSU,SCU,L1,L2,L3,system cache, Non-cacheable,Cacheable, non-shareable,inner-shareable,outer-shareable, optee、ATF、TF-A、Trustzone、optee3.14、MMU、VMSA、cache、TLB、arm、armv8、armv9、TEE、安全、内存…

Palworld幻兽帕鲁管理员操作手册

Palworld幻兽帕鲁管理员操作手册 大家好我是艾西,在我们搭建完幻兽帕鲁服务器后肯定会涉及到后期的维护比如:角色修改,帕鲁修改,异常删除,公会修改,清理玩家,清理建筑,存档迁移等数…

2024自动化测试的痛点与发展趋势!

前几天在技术交流群里,大家讨论了很多关于自动化测试落地面临的痛点和如何创造价值的话题,颇有感触。 自动化测试这个话题,从出现到在国内大规模开展实践,有很长的一段时间了。早期,大家对自动化测试的理解和使用目的…

企业微信如何接入第三方应用?

1.登录企业微信管理后台:https://work.weixin.qq.com/wework_admin​​​​​ 2.点击创建应用; ​​​​​​​ 3. 此时可以看到已经创建好的应用,并且生成应用的唯一id(agentId) 4. 第三方应用申请域名 (举例&…

Vue3 + antv/x6 实现流程图

新建流程图 // AddDag.vue <template><div class"content-main"><div class"tool-container"><div click"undo" class"command" title"后退"><Icon icon"ant-design:undo-outlined" /…

kibana新增查看更新删除es中的数据

登录kibana&#xff0c;打开开发工具 写入数据 PUT test20240311/person/1 {"name": "张三","mobile":"13011111111" } 查询数据 GET /test20240311/person/_search {"query": {"term": {"mobile": {…

类和对象练习题

第1题 import java.util.Scanner; public class Homework01{public static void main(String[] args){//创建一个double类型的数组double array[]new double[6];//创建一个输入对象Scanner inputnew Scanner(System.in);//提示信息&#xff1a;对数组元素进行赋值System.out.pr…

docker-swarm集群管理命令

为什么选择swarm集群&#xff1f; 灵魂疑问&#xff1a;同样是集群&#xff0c;为什么选择docker swarm&#xff0c;而不不选择k8s或者k3s&#xff1f; 我的需求场景&#xff1a;不想直接用docker或者java -jar直接跑&#xff0c;修改前是使用java -jar方式&#xff0c;这两种…

爬虫练习:获取某网站的房价信息

一、相关网站 二、相关代码 import requests from lxml import etree import csv with open(房天下数据.csv, w, newline, encodingutf-8) as csvfile:fieldnames [名称, 地点,价格,总价,联系电话]writer csv.DictWriter(csvfile, fieldnamesfieldnames)writer.writeheader…

【UE5】非持枪站姿移动混合空间

项目资源文末百度网盘自取 创建角色在非持枪状态且站立移动的动画混合空间 在Character文件夹中创建文件夹&#xff0c;命名为BlendSpace 所有混合空间文件都放到这个文件夹中 在BlendSpace文件夹中单击右键&#xff0c;选择动画(Animation)中的混合空间(BlendSpace) 选择SK…

爬虫技术之正则提取静态页面数据

第一天 简单示例 在爬虫过程中&#xff0c;我们获取到了页面之后&#xff0c;通常需要做的就是解析数据&#xff0c;将数据持久化到数据库为我所用。如何又快又准确得提取有效数据&#xff1f;这是一门技术&#xff0c;看了我的博客之前可能略有难度&#xff0c;但各位大师看…

OpenvSwitch VXLAN 隧道实验

OpenvSwitch VXLAN 隧道实验 最近在了解 openstack 网络&#xff0c;下面基于ubuntu虚拟机安装OpenvSwitch&#xff0c;测试vxlan的基本配置。 节点信息&#xff1a; 主机名IP地址OS网卡node1192.168.95.11Ubuntu 22.04ens33node2192.168.95.12Ubuntu 22.04ens33 网卡信息&…

Win10系统使用IIS服务搭建WebDAV网站结合内网穿透公网访问本地文件

文章目录 推荐1. 安装IIS必要WebDav组件2. 客户端测试3. cpolar内网穿透3.1 打开Web-UI管理界面3.2 创建隧道3.3 查看在线隧道列表3.4 浏览器访问测试 4. 安装Raidrive客户端4.1 连接WebDav服务器4.2 连接成功4.2 连接成功总结&#xff1a; 推荐 前些天发现了一个巨牛的人工智能…

【单调栈】代码随想录算法训练营第五十九天 |503.下一个更大元素II, 42. 接雨水 (待补充)

503.下一个更大元素II 1、题目链接&#xff1a;. - 力扣&#xff08;LeetCode&#xff09; 2、文章讲解&#xff1a;代码随想录 3、题目&#xff1a; 给定一个循环数组&#xff08;最后一个元素的下一个元素是数组的第一个元素&#xff09;&#xff0c;输出每个元素的下一个…