python基础语法(二)列表
往期推荐:
python基础语法(一)range函数
python基础语法(二)列表
- 前言
- 一、列表的创建与删除
- 二、列表的查询操作
- 1. 获取列表中指定元素的索引
- 2. 获取列表中的单个元素
- 3. 获取列表中的多个元素
- 4. 列表元素的查询操作
- 三、列表元素的增、删、改操作
- 1. 列表元素的增加操作
- 2. 列表元素的删除操作
- 3. 列表元素的修改操作
- 四、列表元素的排序
- 五、列表生成式
前言
- 变量可以存储一个元素,列表是一个大容器,可以存储N多个元素,方便对这些数据进行整体操作
- 相当于其他语言中的数组
- 变量存储的是一个对象的引用id
一、列表的创建与删除
列表需要使用中括号[],元素之间使用英文的逗号进行分隔
lst = [‘a’,‘b’]
列表的创建方式:
- 使用中括号 lst = [‘a’,‘b’]
- 调用内置函数lst() lst2 = lst([‘a’,‘b’])
列表的特点:
- 列表元素按顺序有序排序
- 索引映射唯一个数据
- 列表可以存储重复数据
- 任意数据类型混存
- 根据需要动态分配和回收内存
列表索引顺序(7个元素为例):
从前往后:0~6
从后往前:-7~-1(采用负数)
即lst[0]与lst[-7]是同一个元素
二、列表的查询操作
1. 获取列表中指定元素的索引
index():
- 如果查列表中存在N个相同元素,只返回相同元素中第一个元素的索引
- 如果查询的元素在列表中不存在,则会抛出ValueError
- 还可以在指定的start和stop之间进行查找
2. 获取列表中的单个元素
- 正向索引从0到N-1
- 逆向索引从-N到-1
- 指定索引不存,抛出IndexError
代码如下(示例):
lst = ['hello', 'world', 'hello']print(lst.index('hello'))
# 输出结果 0print(lst.index('hello', 1, 4))
# 输出结果 2print(lst.index('hello', 0, 4))
# 输出结果 0
3. 获取列表中的多个元素
列表名[start:stop:step]:
- 切片的结果:原列表片段的拷贝
- 切片的范围:[start, stop)
- step默认为1:简写为[start:stop]
step为正数(从start开始往后计算切片):
- [:stop:step]切片的第一个元素默认是列表的第一个元素
- [start::step]切片的最后一个元素默认是列表的最后一个元素
step为负数(从start开始往前计算切片):
- [:stop:step]切片的第一个元素默认是列表的最后一个元素
- [start::step]切片的最后一个元素默认是列表的第一个元素
代码如下(示例):
lst = [10,20,30,40,50,60,70,80]print(lst[1:6:1])
# 输出结果 20,30,40,50,60print(lst[1:6:2])
# 输出结果 20,40,60print(lst[:6:2])
# 输出结果 10,30,50print(lst[1::2])
# 输出结果 20,40,60,80print(lst[::-1])
# 输出结果 80,70,60,50,40,30,20,10print(lst[6:0:-2])
# 输出结果 70,50,30
4. 列表元素的查询操作
判断指定元素在列表中是否存在:
- 元素 in 列表名
- 元素 not in 列表名
列表元素的遍历:
- for 迭代变量 in 列表名 :
操作
三、列表元素的增、删、改操作
1. 列表元素的增加操作
列表元素的增加操作:
- append():在列表的末尾添加一个元素
- extend():在列表的末尾至少添加一个元素
- insert():在列表的任意位置添加一个元素
- 切片:在列表的任意位置添加至少一个元素
lst = [10,20,30]lst.append(100)
print(lst)
# 输出结果 [10, 20, 30, 100]lst2 = ['hello', 'world']
lst.extend(lst2)
print(lst)
# 输出结果 [10, 20, 30, 'hello', 'world']lst.insert(1, 90)
print(lst)
# 输出结果 [10, 90, 20, 30]lst3 = [True, False, 'hello']
lst[1:] = lst3
print(lst)
# 输出结果 [10, True, False, 'hello']
# 10后面直接被切掉替换成lst3
2. 列表元素的删除操作
列表元素的删除操作:
- remove():一次删除一个元素;重复元素只删除第一个;元素不存在抛出ValueError
- pop():删除一个指定索引位置上的元素;指定索引不存在抛出IndexError;不指定索引,删除列表中最后一个元素
- 切片:一次至少删除一个元素
- clear():清空列表,删除列表中的元素
- del:删除列表,不是删除列表元素,是删除列表!
lst = [10, 20, 30, 40, 50, 60, 30]
lst.remove(30)
print(lst)
# 输出结果 [10, 20, 40, 50, 60, 30]lst.pop(1)
print(lst)
# 输出结果 [10, 30, 40, 50, 60, 30]lst.pop()
print(lst)
# 输出结果 [10, 20, 30, 40, 50, 60]
# 不写索引,默认删除最后一个元素new_lst = lst[1:3]
print('原列表', lst)
print('切片列表', new_lst)
# 输出结果
# 原列表 [10, 20, 30, 40, 50, 60, 30]
# 切片列表 [20, 30]lst = [10, 20, 30, 40, 50, 60, 30]
lst[1:3] = []
print('切片列表', lst)
# 输出结果
# 切片列表 [10, 40, 50, 60, 30]
# 不产生新的列表对象,删除原列表中的内容lst.clear()
print(lst)
# []del lst
print(lst)
# 输出结果 NameError: name 'lst' is not defined
# 列表被删除,不是列表元素被删除,是列表被删除!
3. 列表元素的修改操作
列表元素的修改操作:
- 为指定索引的元素赋予一个新值
- 为指定的切片赋予一个新值
指定索引:
lst = [10, 20, 30, 40, 50, 60, 30]
lst[2] = 100
print(lst)
# 输出结果 [10, 20, 100, 40, 50, 60, 30]
指定切片:
lst = [10, 20, 30, 40]
lst[1:3] = [300, 400, 500, 600]
print(lst)
# 输出结果 [10, 300, 400, 500, 600, 40]
四、列表元素的排序
列表元素的排序操作:
- 调用sort()方法,列表中的所有元素默认按照从小到大的顺序进行排序,可以指定括号里面reverse = True,进行降序排序
- 调用内置函数sorted(),可以指定reverse = True,进行降序排序,原列表不发生改变
调用sort():
lst = [20, 40, 10, 98, 54]
lst.sort()
print(lst)
# 输出结果 [10, 20, 40, 54, 98]lst.sort(reverse=True)
print(lst)
# 输出结果 [98, 54, 40, 20, 10]lst.sort(reverse=False)
print(lst)
# 输出结果 [10, 20, 40, 54, 98]
调用内置函数sorted():
lst = [20, 40, 10, 98, 54]
new_lst = sorted(lst)
print(lst)
print(new_lst)
# 输出结果 [20, 40, 10, 98, 54]
# 输出结果 [10, 20, 40, 54, 98]new_lst1 = sorted(lst, reverse=True)
print(lst)
print(new_lst1)
# 输出结果 [98, 54, 40, 20, 10]
五、列表生成式
语法格式:
- [i*i for i in range(1, 10)]
- i*i 表示列表元素的表达式
- i 自定义变量
- range(1, 10)可迭代对象
代码示例:
lst = [i for i in range(1, 10)]
print(lst)
# 输出结果 [1, 2, 3, 4, 5, 6, 7, 8, 9]lst = [i*2 for i in range(1, 10, 2)]
print(lst)
# 输出结果 [2, 6, 10, 14, 18]
python基础语法(二)列表相关推荐
- Python基础语法【列表】
Python基础语法[列表] 一.认识列表 1.什么是列表(list) 1)列表是python提供的容器型数据类型:将[]作为容器的标志,里面多个元素用逗号隔开:[数据1,数据2,-] [数据1,数据 ...
- Python 基础语法(二)
2. 元组 tuple和list十分相似,但是tuple是不可变的,即不能修改tuple,元组通过圆括号中用逗号分割的项定义:支持索引和切片操作:可以使用 in 查看一个元素是否在tuple中.空元组 ...
- 【python基础语法】列表的查询操作(包括切片)
目录 列表 列表的创建[]或list() 定位列表中的元素L[0] 查询列表中元素索引L.index() 列表的切片操作L[start:stop:step] L[slice(start,stop,st ...
- python基础语法(一)
Python的特点 1. 简单 Python是一种代表简单思想的语言. 2. 易学 Python有极其简单的语法. 3. 免费.开源 Python是FLOSS(自由/开放源码软件)之一. 4. 高层语 ...
- python基础语法复习[二] 函数、类
python基础语法复习[二] 前言 一.函数 1.基本概念 2.一般实例 3.参数传递 (1)传不可变对象 (2)传可变对象 4.函数递归调用实例 (1)eg:实现字符串的反转: (2)递归思想画树 ...
- Python基础语法day02字符串详解和列表
今天是python基础语法入门第二天,大概总共会有四天左右.四天后就是对于python的numpy库的详细文章.那话不多说,我们开始. 目录 字符串详解 字符串独有功能 检测头尾字符 判断输入结果是否 ...
- 从列表中切片最佳英雄组合,我的选择是亚索和李青——补充python基础语法有关数字类型和列表的知识
本文继续补充个人对python基础语法的理解,这里主要讲数字类型和列表~ 目前还不算初级程序员把,但是一洗头就掉头发,现在都不敢洗头了~ 数字类型 python中的数字类型:int(整型).float ...
- python基础数据类型之列表,元组(基础二)
第四章 python基础数据类型之列表,元组(基础二) python常用数据类型之组合数据类型:列表,元组. 4.1 列表 list 列表介绍 列表是python的基础数据类型之⼀ ,其他编程语⾔言也 ...
- Python基础数据之列表知识(二)
Python基础数据之列表知识(二) 一.列表的特点 二.列表的排序 三.列表的嵌套 1.嵌套的基本使用 2.嵌套的示例 四.列表的循环删除 五.列表相关知识链接 一.列表的特点 1.有序 2.独立 ...
最新文章
- 【转载】C#编码标准━━项目设置和项目结构
- leetcode Number of 1 Bits
- php数组根据指定列排序
- SpringBoot项目打war包部署Tomcat教程
- sqli-lab————Writeup(18~20)各种头部注入
- 为什么我加了过滤器然后就登不进去了_布隆过滤器过时了,未来属于布谷鸟过滤器?...
- unity android 版本,Unity2019与Android混合开发
- vector用法 java equals_java泛型vector的用法 | 学步园
- 谈谈服务器虚拟化解决方案
- 微信公众平台注册流程
- 【Front Plant Sci】LvMYB5 和 LvMYB1转录因子调控百合花青素合成
- C++:error 2048:函数*****已有主体
- PCB多层板每层厚度及材质
- MATLAB 2016b--神经网络工具箱中BP网络的实现
- 搜索引擎 百度 高级搜索
- 智能指针(三):weak_ptr浅析
- 品牌如何开展饥饿营销?
- python语言关键字的是_不属于Python语言关键字的是( )
- 日常编程笔记 | 2022.10.1 | 归并排序_一无序列
- 对接百度OCR发票识别功能
热门文章
- 安装MPlayer播放器(号称Linux中的万能播放器)
- (4.7-4.13)【大数据新闻速递】上海、广州、青海、贵阳大力发展大数据产业;2026年中国大数据市场规模预计达365亿美元
- 【快速幂】HRBUST 2263 萝莉控型提督
- DRA777PSIGACDRQ1/DRA773PSGACDRQ1/DRA776PPIGACDRQ1【汽车应用处理器】
- 编译支持TBB的opencv4.1.0、4.5.2及TBB的使用
- ReentrantReadWriteLock原理与使用
- 售后退款的java代码_SpringBoot 微信退款功能的示例代码
- UVa OJ 11121
- 如何免费将PDF转成PPT
- symfony2中一维码和二维码使用