python-基础(4)-list

python专栏地址
上一篇:python-基础(3)-字符串操作

List结构

本节将学习以下内容

  • list初识
  • list的操作

一、List初识

  • 创建
    • 通过[]/list([])创建 ,两者的区别可以参考python中用list和中括号创建列表有什么区别?
    • (在创建时相同,但一个的实质时函数,有转化功能,一个只是一种表示方法。)
  • 特点
    • 任何形式的元素都行
    • 没有长度限制

1、创建

  • 直接创建
# 例1
gufen = []
gufen
[]
# 例2
gufen = [1, 2, "gufen"]
gufen
[1, 2, 'gufen']
  • 通过list([])创建

即给list()函数中传入一个[]

# 例2
gufen = list()
type(gufen)
list
gufen = list([1, 2, 3, 4])
type(gufen)
list
gufen
[1, 2, 3, 4]
gufen[3:100]
[4]

二、List的操作

1、求长度

  • 函数len()
gufen = list([1, 2, 3, 4])
len(gufen)
4

2、+ 和 *

  • +:在一个列表的后面续上另外一个list
a = [123, 456]
b = ["gufeng", "de", "world"]
c = a + b
c
[123, 456, 'gufeng', 'de', 'world']
type(c)
list
  • *:这里说的乘是乘以常数n,也就是把原来的list重复n遍
a * 3
[123, 456, 123, 456, 123, 456]

3、元素引用与切分

python的索引切分,a[m:n]列举出来的是从a[m]到a[n-1]的数

  • 引用
a = [1, 2, 3, 4, 5, 6, 7, 8]
a[1]
2
a[-1]  # -1表示倒数第一个
8
a[-2]
7
  • 切分
a[1:3]  # 表示a[1],a[2]
[2, 3]
a[0:]  # 后面的全部元素
[1, 2, 3, 4, 5, 6, 7, 8]
a[0:1]
[1]
a[:-1]
[1, 2, 3, 4, 5, 6, 7]

4、替换

  • 这里的替换是赋值性的替换
a = [1, 2, 3, 4, 5, 6, 7, 8]
a[0] = 789
a
[789, 2, 3, 4, 5, 6, 7, 8]
a[:] = ["gufen", "world"]
a
['gufen', 'world']

5、删除部分元素

  • 操作语句: del a[]
a = [1, 2, 3, 4, 5, 6, 7, 8]
del a[0]  # 定点删除
a
[2, 3, 4, 5, 6, 7, 8]
del a[3:]  # 范围性删除,3及后面的全部
a
[2, 3, 4]

6、指定元素在list中吗

  • 操作语句 A in B 。A在B中吗
a = [1, 2, 3, 4, 5, 6, 7, 8, 9]
8 in a
True
8 not in a
False
gufen = "gufen de world"
"gufen" in gufen
True
type = [30001, 30002, 30003]
for item in type:type = str(item)if type not in ["30001", "30002"]:type = "other"print(type)
30001
30002
other
x = 1
y = 3
z = 4
z1 = [x, y, z]
sum(z1)
8

7、list嵌套

  • 这里要注意的是,list的嵌套结构,其引用方式,就像其他语言的多维数组一样
  • 已经几次提到数组了,这里单独解释以下什么是数组。数组其实就是线性代数中的向量。没有嵌套的list就相当于矩阵中的列向量,嵌套的list相当与一个向量组。下面是一个4*5的数组,就是4行5列的。

\begin{matrix} a & b & c & d & e\ f & g & h & i & j \ k & l & m & n & o \ p & q & r & s & t \end{matrix}

a = [1, 2, [3, 4]]
a
[1, 2, [3, 4]]
a[2]
[3, 4]
a[2][0]
3
a[2][1]
4

8、计数与定位

  • count()函数,统计出现的次数
  • index(),获得索引值
tang = ["apple", "banana", "apple", "apple", "banana"]
tang.count("banana")
2
tang = ["apple", "1", "2", "3", "4", "5"]
tang.index("apple")
0
# 没有的元素找不到
tang.index("banana")
---------------------------------------------------------------------------ValueError                                Traceback (most recent call last)Cell In[39], line 21 # 没有的元素找不到
----> 2 tang.index("banana")ValueError: 'banana' is not in list

9、list在数据结构中的基本操作

  • 添加函数 append() 不限制添加元素的树结构

  • 指定位置插入元素 insert(n,list) ,

  • 删除指定元素remove(list)

  • 弹出指定元素pop()

  • list排序sort()

  • 反转reverse()

  • 添加一个普通元素

gufen = []
gufen.append("gufen")
gufen
['gufen']
  • 添加了一个列表
gufen.append(["gufen", "world"])
gufen
['gufen', ['gufen', 'world'], ['gufen', 'world']]
  • 插入
gufen.insert(2, "gufen")  # 指定位置插入
gufen
['gufen', ['gufen', 'world'], 'gufen', ['gufen', 'world']]
gufen.insert(0, "43434")
gufen
['43434', 'gufen', ['gufen', 'world'], 'gufen', ['gufen', 'world']]
  • 删除
    remove
# 默认去掉这个元素的第一个
gufen.remove(['gufen', 'world'])
gufen
['43434', 'gufen', 'gufen', ['gufen', 'world']]
  • 弹出
gufen.pop()  # 默认弹出的是list的最后一个
['gufen', 'world']
# 弹出后会改变原来的list。
gufen.pop(1) 
'gufen'
gufen
['43434', 'gufen']
  • 排序
    • 自己变还是没变,没变的一种是直接调用sort(),不变的是sorted(list)
gufen = [1, 3, 5, 6, 2, 57, 32]
gufen.sort()
gufen
[1, 2, 3, 5, 6, 32, 57]
gufen = [1, 3, 5, 6, 2, 57, 32]
gufen2 = sorted(gufen)
gufen2
[1, 2, 3, 5, 6, 32, 57]
  • reverse取反函数
gufen2.reverse()
gufen2
[57, 32, 6, 5, 3, 2, 1]

python专栏地址
上一篇:python-基础(3)-字符串操作
点个关注呗 🤪😝

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

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

相关文章

Spring Data Jpa的save方法更新未传值的字段被更新为空的处理方法

Spring Data Jpa的save()方法通过主键是否为空来判断insert或是update操作,但更新方法和以往使用的mybatis-plus存在一定的差异,特别记录处理方法。 Resourceprivate Dao dao;/*** 更新操作* param data 前端传入存在更新的字段值的对象*/public void up…

pat乙-1020月饼

贪心:既然有存货量一定,利润要最高; 这个贪心就在于我看“单价”最高,这个单价也是要把存货量算进去的,所以按“单价”排序,再遍历,优选选择“单价”最高的,不够的再补,…

el-menu 该有的页面显示不出来第一个应该想到的问题首先就算检查是否多写了一个 , 导致显示不出来原有的页面

问题描述 el-menu 该有的页面显示不出来第一个应该想到的问题首先就算检查是否多写了一个 , 导致显示不出来原有的页面 如图所示多写了一个,就会导致该有的页面显示不出来。

Python 天气预测

Python天气预测通常涉及到数据采集、数据预处理、选择和训练模型、以及预测和可视化等步骤。以下是使用Python进行天气预测的一般流程: 数据采集 使用爬虫技术从天气网站(如Weather Underground、中国天气网等)爬取历史天气数据&#xff0c…

my.cnf配置文件调优

mysql数据库的性能调优首先要考虑的就是表结构设计,一个糟糕的设计模式即使在性能强劲的服务器上运行时,也会表现得很差。与设计模式相似,查询语句也会影响mysql的性能,应该避免写出低效的sql查询语句。最后要考虑的就是参数优化,mysql数据库默认设置的性能非常差,只能起…

LeetCode 628. 三个数的最大乘积 java版

1. 官网: . - 力扣(LeetCode) 2. 题目: 给你一个整型数组 nums ,在数组中找出由三个数组成的最大乘积,并输出这个乘积。 示例 1: 输入:nums [1,2,3] 输出:6示例 2&…

Java中的递归方法:初学者的简明指南

Java中的递归方法:初学者的简明指南 递归是编程中的一个重要概念,它指的是一个方法直接或间接地调用自身。递归方法在处理某些问题时,特别是那些可以分解为更小、更简单的子问题时,非常有用。虽然递归的概念初看起来可能有些复杂…

QEMU_v8搭建OP-TEE运行环境

文章目录 一、依赖下载二、设置网络三、安装下载四、运行OP-TEE 一、依赖下载 更新依赖包,下载一系列依赖。比如Python需要Python3.x版本,需要配置git的用户名和邮箱等。这里不详细展开了,很多博客都有涉及到。 二、设置网络 这一点非常重…

【nginx代理和tengine的启动-重启等命令】

在nginx成功启动后[任务管理器有nginx.exe进程],运行vue项目,在浏览器访问http://localhost:10001/,提示:访问拒绝(调试中network某些地址403); 解决方案: localhost改为ip&#xff…

已解决:用 Pyinstaller 模块将整个GUI项目打包成 单独exe 文件、移到没有python的环境依旧可以运行(全网完美解决的方法)

1.环境 我的项目是pyside2实现的GUI项目,涉及文件读写、panda操作等,项目包括ui文件、ico文件、项目模块(项目中有多个不同的模块、每个模块里面有代码)。项目内容是可以使用该GUI框架对别的数据文件进行读取、加工处理、保存等一系列操作。win11+python3.8+pyside2+其它库…

【Flutter】GetX状态管理及路由管理用法

目录 一、安装二、使用1.安装GetX插件,快捷生成模版代码2.主入口MaterialApp改成GetMaterialApp3.定义路由常量RoutePath类、别名映射页面RoutePages类4. 初始initialRoute,getPages。5.调用 总结 一、安装 dependencies: get: ^4.6.6二、使用 1.安装G…

MDK-ARM Keil5.38 下载安装环境搭建

一、keil软件介绍 KEIL是公司的名称,有时候也指KEIL公司的所有软件开发工具,目前2005年Keil由ARM公司收购,成为ARM的公司之一。 MDK(Microcontroller Development Kit) 也称MDK-ARM、KEIL MDK、RealView MDK、KEIL For…

[最新]访问/加速StackOverFlow的方法

但是有很多问题都是在StackOverFlow上有现成的解决方案,而某度搜索引擎…前一页的回答互相抄袭,看着实在胀眼睛。 话不多说,解决办法: 直接访问插件商店下载插件(最快捷方便,点点就行)&#x…

Python中的迭代器:深入理解与实用指南

文章目录 1. 迭代器的基本概念2. Python中的迭代器实例3. 自定义迭代器3.1 例子3.2 详细过程 4. 迭代器的高级应用5. 常见问题与解答 迭代器是Python中非常核心的概念之一,在面试中也会被问到。下面我会详细介绍什么是迭代器,使用方法,以及使…

python_表格处理_pandas_pd.read_csv输入输出参数说明

pd.read_csv 输入参数说明 pd.read_csv() 函数用于从 CSV 文件中读取数据,并返回一个 DataFrame 对象。它的常用输入参数说明如下: filepath_or_buffer:CSV 文件的路径或者文件对象,可以是本地文件路径、URL、文件类对象等。sep&…

怎么转行做产品经理?

小白转产品经理第一点要先学基础理论知识,学了理论再去实践,转行,跳槽! 学理论比较好的就是去报NPDP的系统班,考后也会有面试指导课、职场晋升课程,对小白来说非常合适了~(B站:不爱…

linux驱动开发中jiffies的使用

Linux 内核使用全局变量 jiffies 来记录系统从启动以来的系统节拍数,系统启动的时候会将 jiffies 初始化为 0,jiffies 定义在文include/linux/jiffies.h 中,定义如下: extern u64 __jiffy_data jiffies_64; // 64位的jiffie…

探索 IntelliJ IDEA 2024.1最新变化:全面升级助力编码效率

探索 IntelliJ IDEA 2024.1最新变化:全面升级助力编码效率 文章目录 探索 IntelliJ IDEA 2024.1最新变化:全面升级助力编码效率摘要引言 IntelliJ IDEA 2024.1 最新变化关键亮点全行代码补全 Ultimate对 Java 22 功能的支持新终端 Beta编辑器中的粘性行 …

mac安装idea、安装Tomcat,idea配置tomcat,mac安装Maven

记录一下mac安装idea、安装Tomcat,idea配置tomcat,mac安装Maven的过程,及遇到的问题: (1)mac安装idea:idea有两个版本社区版和商业版本,其中社区版免费但是不能安装javaEE插件&…

『FPGA通信接口』串行通信接口-IIC(2)EEPROM读写控制器

文章目录 1.EEPROM简介2.AT24C04简介3.逻辑框架设计4.随机读写时序5.仿真代码与仿真结果分析6.注意事项7.效果8.传送门 1.EEPROM简介 EEPROM (Electrically Erasable Programmable read only memory) 是指带电可擦可编程只读存储器。是一种掉电后数据不丢失的存储芯片。在嵌入…