【Python列表解锁】:掌握序列精髓,驾驭动态数据集合

news2024/11/27 12:39:50

文章目录

      • 🚀一、列表
      • 🌈二、常规操作
        • 💥增
        • 💥删
        • 💥改
        • 💥查
      • ⭐三、补充操作

🚀一、列表

在这里插入图片描述

  • 列表是一个能够存储多个同一或不同元素的序列
  • 列表:list ---- []
  • 列表属于序列类型(容器序列)
  • 列表属于可变类型(可直接改变原数据–可变序列)
  • 序列: 指的是一块可存放多个值的连续内存空间,这些值按一定顺序排列,可通过每个值所在位置的编号(称为索引)访问它们。-----序列是有序集的通用术语
# 列表中的元素是指列表中每个单独的数据项,一个列表是由一系列元素组成的。

list1 = [1, 'hahah', ['asd', 123]]

# 其中['asd', 123]为list1的其中一个元素
# ['asd', 123]在list1里面的下标为2

列表是序列类型,因此可以进行索引下标操作

🌈二、常规操作

💥增
  • append: 向列表末端添加变量

append 方法是列表(List)类的一个内置方法,用于在列表的末尾添加一个元素。这个方法只接受一个参数,即你要添加到列表中的项。该方法不会返回任何值,而是直接修改原列表。

list1 = ['快乐', '忧伤', 'hahah']
list1.append('kuai')
print(list1)  # ['快乐', '忧伤', 'hahah', 'kuai']

在这里插入图片描述

  • extend: 将数据添加到指定列表中

extend 方法是列表(list)的一个内置方法,用于将一个可迭代对象(如列表、元组、字符串等)的所有元素添加到列表的末端,从而扩展原列表。与 append 方法不同,append 是向列表添加单个元素,而 extend 是添加另一个集合中的多个元素。

  • list:这是你要扩展的列表。
  • iterable:一个可迭代对象,其元素将逐个添加到列表的末尾。
# 将数据中元素逐一加入指定列表

list3 = ['快乐', '忧伤', 'hahah']
list3.extend('帅12345')
print(list3)  # ['快乐', '忧伤', 'hahah', '帅', '1', '2', '3', '4', '5']


list4 = ['快乐', '忧伤', 'hahah']
list4.extend(['帅12345', 1, 2])
print(list4)  # ['快乐', '忧伤', 'hahah', '帅12345', 1, 2]

在这里插入图片描述

  • insert: 指定位置插入元素

insert 方法是列表(list)的一个内置方法,用于在列表的指定位置插入一个元素。此操作会将指定索引位置之后的元素向右移动一个位置,以腾出空间给新插入的元素。

语法:

list.insert(index, element)
  • list:这是你要插入元素的列表。
  • index:这是你想在列表中插入新元素的索引位置。如果索引是0,则新元素会成为列表的第一个元素。如果索引等于列表长度,则新元素会追加到列表的末尾。
  • element:你要插入到列表中的元素。
list2 = ['快乐', '忧伤', 'hahah']
list2.insert(0, '帅')
print(list2)  # ['帅', '快乐', '忧伤', 'hahah']

在这里插入图片描述

💥删
  • clear: 清空列表中的数据

clear 方法是列表(list)的一个内置方法,用于清空列表中的所有元素,使其变成一个空列表。调用这个方法后,列表的长度变为0,且不再包含任何元素。

语法:

list.clear()
  • list:这是你想要清空的列表。
list5 = ['快乐', '忧伤', 'hahah']
list5.clear()
print(list5)  # []

在这里插入图片描述

  • pop: 删除指定索引位置的元素,默认删除最后一个

pop 方法是列表(list)的一个内置方法,用于移除列表中的一个元素,并且可以返回这个被移除的元素。如果不指定索引,pop 方法默认移除并返回列表的最后一个元素。如果指定了索引,就移除并返回该索引位置上的元素。

语法:

list.pop([index])
  • list:这是你想要从中移除元素的列表。
  • [index]:这是可选参数,指定要移除元素的索引位置。如果不提供,默认为-1,即最后一个元素。
list6 = ['快乐', '忧伤', 'hahah']
list6.pop()
print(list6)  # ['快乐', '忧伤']


list7 = ['快乐', '忧伤', 'hahah']
list7.pop(1)
print(list7)  # ['快乐', 'hahah']

在这里插入图片描述

  • remove: 删除指定元素

remove 方法是列表(list)的一个内置方法,用于移除列表中第一个匹配给定值的元素。这个方法只移除第一个找到的匹配项,并且在原列表上进行修改,不会返回任何值。如果列表中不存在给定的值,remove 方法会抛出一个 ValueError 异常。

语法:

list.remove(value)
  • list:这是你要从中移除元素的列表。
  • value:这是你希望从列表中移除的元素的值。
list8 = ['快乐', '忧伤', 'hahah']
list8.remove('快乐')
print(list8)  # ['忧伤', 'hahah']

在这里插入图片描述

  • del: 删除

del 语句是一种用来删除对象(包括列表中的元素、整个列表、变量等)的方式,它不是列表的一个方法,而是一个Python语句。当你使用 del 删除列表中的元素时,可以通过索引或切片指定要删除的部分,这会直接修改原列表。

list9 = ['快乐', '忧伤', 'hahah']
del list9[0] # 单独删除
print(list9)  # ['忧伤', 'hahah']

list10 = ['快乐', '忧伤', 'hahah']
del list10[0:2]  # 范围删除,还可以进行步长操作
print(list10)  # ['hahah']

在这里插入图片描述

list11 = ['快乐', '忧伤', 'hahah']
del list11
print(list11)

在这里插入图片描述

💥改

直接索引操作,重新赋值

list12 = ['快乐', '忧伤', 'hahah', [1,2,3]]
# 直接改
list12[0] = '你不得努力一下'
print(list12)


list13 = ['快乐', '忧伤', 'hahah', [1,2,3]]
# 直接操作可变数据
list13[3].append('哈沙给')
print(list13)  # ['快乐', '忧伤', 'hahah', [1, 2, 3, '哈沙给']]

在这里插入图片描述

💥查
  • index 查看指定元素第一次出现的下标位置(可指定范围)
list14 = ['快乐', '忧伤', 'hahah', [1, 2, 3], 1, 2, 3, 4, 2]
print(list14.index(1))  # 4
# 因为下标为3为[1, 2, 3],所以往后找,下标为4是指定元素
  • count 统计指定元素在列表中出现次数
list15 = ['快乐', '忧伤', 'hahah', [1, 2, 3], 1, 2, 3, 4, 2]
print(list15.count(2))  # 2次

在这里插入图片描述

⭐三、补充操作

  • copy 浅复制

列表(list)的复制可以通过多种方式实现,但直接提到的“copy方法”通常指的是使用列表的 copy() 内置方法来创建原列表的一个浅复制。这意味着新列表与原列表包含相同的元素,但两个列表是不同的对象,修改其中一个列表不会直接影响另一个。

语法:

new_list = original_list.copy()
  • original_list:原始列表,你想要复制的那个列表。
  • new_list:通过 copy() 方法创建的原始列表的副本。
list_1 = [123, 345, 'hahg']
list_2 = list_1.copy()

print(list_2)  # [123, 345, 'hahg']

print(id(list_1))  # 2563097618248
print(id(list_2))  # 2563097618312

在这里插入图片描述

  • reverse 序列反向

reverse 方法是列表(list)的一个内置方法,用于就地(in-place)地反转列表中元素的顺序。这意味着它会直接修改原列表,而不是返回一个新的、反转后的列表。

语法:

list.reverse()
  • list:你想要反转元素顺序的列表。
list_3 = [1, 3, 0, 34, 35, 23, 26]
list_3.reverse()
print(list_3)  # [26, 23, 35, 34, 0, 3, 1]

在这里插入图片描述

  • sort 排序(同类型数据)

sort() 方法是列表(list)的一个内置方法,用于就地(in-place)对列表元素进行排序。这意味着该方法会直接修改原列表,根据元素的值重新排列列表中的元素,而不返回一个新的排序后的列表。

语法:

list.sort(key=None, reverse=False)
  • list:你想要排序的列表。
  • key:可选参数,是一个函数,该函数会被用来计算列表中每个元素的排序键值。默认情况下,元素本身会被用作键值进行比较。
  • reverse:可选参数,默认为False,表示按升序排序。如果设置为True,则按降序排序。
# sort 排序(同类型数据)
list_4 = [1, 3, 0, 34, 35, 23, 26]
list_4.sort()
print(list_4)  # [0, 1, 3, 23, 26, 34, 35]

# sort(reverse=True) 反向排序
list_5 = [1, 3, 0, 34, 35, 23, 26]
list_5.sort(reverse=True)
print(list_5)  # [35, 34, 26, 23, 3, 1, 0]

在这里插入图片描述

  • sorted 临时排序(不改变原列表数据)

sorted() 函数是一个内置的高阶函数,用于对任何可迭代对象(不仅仅是列表)进行排序,返回一个新的排序后的列表,原对象保持不变。这与列表的 sort() 方法不同,sort() 方法是就地排序,直接修改原列表。

语法:

sorted(iterable, key=None, reverse=False)
  • iterable:任何可迭代对象,比如列表、元组、字符串等。
  • key:可选参数,是一个函数,该函数会被用于确定列表中每个元素的排序依据。默认为None,表示直接比较元素。
  • reverse:可选参数,默认为False,表示升序排序。如果设置为True,则进行降序排序。
# sorted 临时排序
list_6 = [1, 3, 0, 34, 35, 23, 26]
data = sorted(list_6)

print(list_6)  # [1, 3, 0, 34, 35, 23, 26]
print(data)  # [0, 1, 3, 23, 26, 34, 35]

# 临时反向排序
list_7 = [1, 3, 0, 34, 35, 23, 26]
data_1 = sorted(list_7, reverse=True)

print(list_7)  # [1, 3, 0, 34, 35, 23, 26]
print(data_1)  # [35, 34, 26, 23, 3, 1, 0]

在这里插入图片描述

  • reversed 临时反向(不改变原列表数据)

reversed() 函数是一个内置函数,它不直接作用于列表,而是作用于任何可迭代对象,返回一个迭代器,该迭代器提供输入序列元素的逆序视图。对于列表,虽然它不直接修改原列表,但你可以通过将返回的迭代器转换为列表或其他容器来获得逆序的副本。

语法:

reversed(iterable)
  • iterable:任何可迭代对象,如列表、元组、字符串等。
list_8 = [1, 3, 0, 34, 35, 23, 26]
data_2 = reversed(list_8)  # 返回的是一个对象

print(list_8)  # [1, 3, 0, 34, 35, 23, 26]
print(data_2)  # <list_reverseiterator object at 0x000001C88644FB38>

# 将对象数据转类型, 可获取其内部数据
data = list(data_2)
print(data)  # [26, 23, 35, 34, 0, 3, 1]

在这里插入图片描述

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

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

相关文章

WWDC 2024前瞻:苹果如何用AI技术重塑iOS 18和Siri

苹果下周的全球开发者大会有望成为这家 iPhone 制造商历史上的关键时刻。在 WWDC 上&#xff0c;这家库比蒂诺科技巨头将展示如何选择将人工智能技术集成到其设备和软件中&#xff0c;包括通过与 OpenAI 的历史性合作伙伴关系。随着重大事件的临近&#xff0c;有关 iOS 18 及其…

高能来袭|联想拯救者携手《黑神话:悟空》玩转东方神话世界

从2020年首次发布实机演示视频以来&#xff0c;《黑神话&#xff1a;悟空》便在全球范围内获得了广泛关注&#xff0c;成为国产3A游戏的现象级爆款。6月&#xff0c;联想拯救者正式宣布成为《黑神话&#xff1a;悟空》全球官方合作伙伴&#xff0c;致力于共同革新国产游戏体验&…

老师必备!一文教你如何高效收集志愿填报信息

高考志愿填报季&#xff0c;对于每一位老师来说&#xff0c;无疑是一场信息收集与管理的硬仗。如何在众多的志愿信息中&#xff0c;高效、准确地掌握每位学生的志愿意向&#xff1f; 高考志愿填报的重要性。不仅是学生人生的一个重要转折点&#xff0c;也是老师教育生涯中的一次…

Elasticsearch 认证模拟题 - 15

一、题目 原索引 task1 的字段 title 字段包含单词 The&#xff0c;查询 the 可以查出 1200 篇文档。重建 task1 索引为 task1_new&#xff0c;重建后的索引&#xff0c; title 字段查询 the 单词&#xff0c;不能匹配到任何文档。 PUT task1 {"mappings": {"…

Latex中表格(3)

Latex中的表格 一、多行或多列单元格 这篇主要说Latex中表格出现多行或者多列单元格的形式. 一、多行或多列单元格 可能用到的宏包 \usepackage{booktabs}\usepackage{multirow} 代码&#xff1a; \begin{table}[h!] \centering \caption{Your caption here} \begin{tabul…

斯坦福天才少女创5亿独角兽!Pika获8000万融资,金牌团队首曝光

斯坦福天才少女创立的公司Pika&#xff0c;继续书写传奇。 GPT-4o深夜发布&#xff01;Plus免费可用&#xff01;https://www.zhihu.com/pin/1773645611381747712 没体验过OpenAI最新版GPT-4o&#xff1f;快戳最详细升级教程&#xff0c;几分钟搞定&#xff1a;升级ChatGPT-4o …

地图之战争迷雾/地图算法/自动导航(一)

战争迷雾 TiledMap 创建黑色覆盖块&#xff0c;然后使用碰撞组件&#xff0c;控制黑色块的显示和隐藏 地图算法 在有些游戏中&#xff0c;地图需要随机生成&#xff0c;比如游戏中的迷宫等&#xff0c;这就需要地图生成的算法&#xff1b;在角色扮演类游戏中&#xff0c;角色…

【AIGC】基于大模型+知识库的Code Review实践

一、背景描述 一句话介绍就是&#xff1a;基于开源大模型 知识库的 Code Review 实践&#xff0c;类似一个代码评审助手&#xff08;CR Copilot&#xff09;。信息安全合规问题&#xff1a;公司内代码直接调 ChatGPT / Claude 会有安全/合规问题&#xff0c;为了使用 ChatGPT…

华为云服务器-云容器引擎 CCE环境构建及项目部署

1、切换地区 2、搜索云容器引擎 CCE 3、购买集群 4、创建容器节点 通过漫长的等待(五分钟左右)&#xff0c;由创建中变为运行中&#xff0c;则表明容器已经搭建成功 购买成功后&#xff0c;返回容器控制台界面 5、节点容器管理 6、创建redis工作负载 7、创建mysql工作负载 8、…

C#使用GDI对一个矩形进行任意角度旋转

C#对一个矩形进行旋转GDI绘图&#xff0c;可以指定任意角度进行旋转 我们可以认为一张图片Image&#xff0c;本质就是一个矩形Rectangle,旋转矩形也就是旋转图片 在画图密封类 System.Drawing.Graphics中&#xff0c; 矩形旋转的两个关键方法 //设置旋转的中心点 public v…

MySQL-相关日志

官方文档 1、MySQL支持的日志 MySQL有不同类型日志文件&#xff0c;用来存储不同类型的日志&#xff0c;分别为 二进制日志、错误日志、通用查询日志、慢查询日志、中继日志、数据定义语句日志 慢查询日志&#xff1a;记录所有执行时间超过 long_query_time的所有查询&#xf…

单元测试覆盖率

什么是单元测试覆盖率 关于其定义&#xff0c;先来看一下维基百科上的一段描述&#xff1a; 代码覆盖&#xff08;Code coverage&#xff09;是软件测试中的一种度量&#xff0c;描述程序中源代码被测试的比例和程度&#xff0c;所得比例称为代码覆盖率。 简单来理解&#xff…

【微信小程序】事件绑定和事件对象

文章目录 1.什么是事件绑定2.button组件3.事件绑定4.input组件 1.什么是事件绑定 小程序中绑定事件与在网页开发中绑定事件几乎一致&#xff0c;只不过在小程序不能通过on的方式绑定事件&#xff0c;也没有click等事件&#xff0c;小程序中 绑定事件使用bind方法&#xff0c;c…

反转链表 (oj题)

一、题目链接 https://leetcode.cn/problems/reverse-linked-list/submissions/538124207 二、题目思路 1.定义三个指针&#xff0c;p1先指向NULL p2指向头结点 p3指向第二个结点 2.p2的next指向p1。然后移动指针&#xff0c;p1来到p2的位置&#xff0c;p2来到p3的位置&…

双列集合基础知识

package exercise;import java.util.HashMap; import java.util.Map;public class Demo1 {public static void main(String[] args) {Map<String, String> map new HashMap<>();//在添加数据的时候&#xff0c;如果键不存在&#xff0c;那么直接把键值对对象添加到…

小主机折腾记25

10.买了惠普光驱&#xff0c;想给880g5twr安装上&#xff0c;结果发现卡扣不对 880g5twr的卡扣更长一些&#xff0c;比光驱本身长一些&#xff0c;各位如果想买的注意擦亮眼睛&#xff0c;看看卡扣跟你的主机一致与否 后续在闲鱼上买了个卡扣&#xff0c;加邮费12块钱…… 1…

手搓文件格式转换

最初目标&#xff1a; 自己搞一个免费的pdf文件转换 根据现有的开源jar 项目实现思路&#xff1a; 1. 项目原因a. 我想转换文件b. wps 文件转换 2. 最初的状态a. jar运行的b. main,输入文件路径c. 一定的编程能力的人才能得 3. 开始构思项目a. 网页版本b. 想着大家一起用 4. …

Go 编程风格指南 - 最佳实践

Go 编程风格指南 - 最佳实践 原文&#xff1a;https://google.github.io/styleguide/go 概述 | 风格指南 | 风格决策 | 最佳实践 注意&#xff1a; 本文是 Google Go 风格 系列文档的一部分。本文档是 规范性(normative) 但不是强制规范(canonical)&#xff0c;并且从属于Goo…

2003NOIP普及组真题 3. 数字游戏

线上OJ 地址&#xff1a; 【03NOIP普及组】数字游戏 此题考察的是 区间DP 前缀和 核心思想&#xff1a; 1、这道题主要考查了动态规划的思想。通过分析题目&#xff0c;可以发现需要 枚举环上所有划分为m组 的不同方案&#xff0c;来求得最大或最小值。属于 环上动态规划 问…

IEDA 默认集成依赖概述

IEDA 默认集成依赖概述 目录概述需求&#xff1a; 设计思路实现思路分析 1.Developer Tools:GraalVM Native supportGraphQL DGs Code GenerationSpring Boot DevToolsLombokSpring Configuration ProcessorDocker Compose supportSpring Modulith 2.WebWebSpring WebSpring Re…