Python 列表的11个重要操作
列表是python中内置的数据结构,它的表现形式为方括号中不同数据的集合,用逗号分隔开。列表可以用来存储相同数据类型或不同数据类型。
列表是可变的,这也是它如此常用的原因,然而在某些情况下,可变性需要特别注意。
本文介绍了11个关于python 列表的重要操作,帮助你更好的掌握列表。
1.从列表删除元素的三种方法
(1)del
del可以根据索引位置,删除某个元素,也可以设定索引范围删除,亦可以删除整个列表,没有返回值
删除单个元素
a = [1, 2, 'x', 4, 5]
del(a[0])
print(f'a is {a}')
输出
a is [2, 'x', 4, 5]
范围删除元素
a = [1, 2, 'x', 4, 5]
del (a[0:2])
print(f'a is {a}')
输出
a is ['x', 4, 5]
删除整个列表
a = [1, 2, 'x', 4, 5]
del (a[0:5])
print(f'a is {a}')
# 按索引范围删除整个列表的元素,将输出一个空列表a is [] a = [1, 2, 'x', 4, 5]
del (a)
print(f'a is {a}')
# name 'a' is not defined 没有返回值,报错找不到对象
(2)remove
remove()函数用于移除列表中某个值的第一个匹配项,没有返回值
例子
a = [1, 2, 'x', 4, 5,]
a.remove('x')
print(f'a is {a}')
输出
a is [1, 2, 4, 5]
注意:只会删除第一个匹配值,如有重复将不会删除
a = [1, 2, 'x', 4, 5,'x']
a.remove('x')
print(f'a is {a}')
输出:
a is [1, 2, 4, 5, 'x']
(3)pop
pop() 函数用于移除列表中的一个元素(默认最后一个元素),并且返回该元素的值。
例子
a = [1, 2, 'x', 4, 5]
b = a.pop()
print(f'a is {a}')
print(f'b is {b}')
输出
a is [1, 2, 'x', 4]
b is 5
我们可以指定删除元素的索引值,不能超过列表总长度。
a = [1, 2, 'x', 4, 5]
b = a.pop(0)
print(f'a is {a}')
输出
a is [2, 'x', 4, 5]
2.列表的添加,扩展,插入
(1)append
append() 函数用于在列表末尾添加新的对象。
a = [1, 2]
a.append(3)
print(a)
输出
[1, 2, 3]
可以是任何数据类型,被追加的元素在列表中保持着原结构类型
a = [1, 2]
b = ['x', 'y', 'z']
a.append(b)
print(a)
输出
[1, 2, ['x', 'y', 'z']]
列表b成为了列表a中的第三项,如果你想创建一个列表是a,b列表中元素的组合a =(1, 2, 'x', 'y', 'z'),则需要使用extend()函数或者"+“。
(2)extend
extend() 函数用于在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)。
a = [1, 2]
b = ['x', 'y', 'z']
a.extend(b)
print(a)
输出
[1, 2, 'x', 'y', 'z']
(3)insert
insert() 函数也用于向列表中添加元素。但是,它允许指定新元素的索引。例如,我们可以在列表的开头添加一个新元素
a = [1, 2, 3, 4, 5]
a.insert(0, 'a')
print(a)
输出
['a', 1, 2, 3, 4, 5]
insert()中的第一个参数是索引,第二个是插入的对象
3.用”=“复制列表
我们可以复制一个列表并创建一个新的变量。
a = [1, 2, 3]
b = a
print(b)

但是,新变量“ b”只是指向“ a”值的指针。 因此,a的任何变化也会改变b。 让我们添加一个值来确认。
a = [1, 2, 3]
b = a
a.append(4)
print(a)
print(b)
输出
[1, 2, 3, 4]
[1, 2, 3, 4]
4.使用索引复制列表
我们可以通过选择列表的所有索引来复制列表。
a = [1, 2, 3]
b = a[:]
print(b)

新的列表b包含与a相同的值,但在不同的内存位置。如果我们改变a,b不会受到影响。
a = [1, 2, 3]
b = a[:]
a.append(4)
print(a)
print(b)
输出
[1, 2, 3, 4]
[1, 2, 3]
使用copy()函数复制列表的工作原理与使用索引复制相同。
a = [1, 2, 3]
b = a.copy()
a.append(4)
print(a)
print(b)
输出
[1, 2, 3, 4]
[1, 2, 3]
5. 用sort()和sorted()对列表进行排序。
sort和sorted函数都可以用来对列表进行排序。
- sort():对列表进行排序,但不返回任何内容。
- sorted():返回列表的排序副本,但不对原始列表进行排序。
sort()
a = [2, 0, 4, 3]
b = a.sort()
print(a)
print(b)

输出
[0, 2, 3, 4]
None
用sorted()函数做同样的例子。
a = [2, 0, 4, 3]
b = sorted(a)
print(a)
print(b)

输出
[2, 0, 4, 3]
[0, 2, 3, 4]
6. 通过复制创建嵌套列表
在通过复制创建一个嵌套的列表时,我们需要注意元素的变化。原列表元素的任何修改都会改变被复制的列表。
a = [1, 2]
b = ['x', 'y']
c = [a, b]
a.append(3)
b.pop()
print(a)
print(b)
print(c)
列表c由列表a和列表b组成,我们通过添加和删除一个元素更新了列表a和列表b。因此,列表c也被更新了。

输出
[1, 2, 3]
['x']
[[1, 2, 3], ['x']]
未完待续...
Python 列表的11个重要操作的更多相关文章
- python列表的11种方法
python列表的11种方法2017年11月24日 03:26:43 Milton-Long 阅读数:254版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.n ...
- Python列表,元组,字典,集合详细操作
菜鸟学Python第五天 数据类型常用操作及内置方法 列表(list) ======================================基本使用====================== ...
- python3笔记十八:python列表元组字典集合文件操作
一:学习内容 列表元组字典集合文件操作 二:列表元组字典集合文件操作 代码: import pickle #数据持久性模块 #封装的方法def OptionData(data,path): # ...
- Python列表,字典和字符串操作
列表: 列表:list, 也叫数组,表现[].特点:有角标,元素可以重复,有序的元素 例子:stus = ['王志华','乔美玲','乔美玲','王文文','feixiang']#中括号,这就是一个l ...
- Python 列表List的定义及操作
# 列表概念:有序的可变的元素集合 # 定义 # 直接定义 nums = [1,2,3,4,5] # 通过range函数构造,python2 和python3 版本之间的差异: # python3 用 ...
- python列表和元组的常用操作
一.列表 需要安利一下:列表和字符串数是不一样的.进行操作时列表可以发生改变,而字符串不可以,所以直接在原来的对象上操作. 1.列表的增加 def append(self, p_object): # ...
- Python 列表切片陷阱:引用、复制与深复制
Python 列表的切片和赋值操作很基础,之前也遇到过一些坑,以为自己很懂了.但今天刷 Codewars 时发现了一个更大的坑,故在此记录. Python 列表赋值:复制"值"还是 ...
- python列表底层实现原理
Python 列表的数据结构是怎么样的? 书上说的是:列表实现可以是数组和链表.顺序表是怎么回事?顺序表一般是数组. 列表是一个线性的集合,它允许用户在任何位置插入.删除.访问和替换元素.列表实现是基 ...
- (转载)Python 列表(list)操作
(转载)http://blog.csdn.net/facevoid/article/details/5338048 创建列表sample_list = ['a',1,('a','b')] Python ...
随机推荐
- 091 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 02 static关键字 01 static关键字(上)
091 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 ...
- Mac系统下的zip压缩包解压到Windows下出现乱码的解决方法
环境变量 环境变量是具有特殊名字的一个特定对象,包含了一个或多个应用程序运行所需的信息.(例如PATH,可执行程序的搜索路径,当要求系统运行一个程序,而没告诉系统它的具体路径时,系统就要在PTAH值的 ...
- C++实现串口通信问题(与Arduino)
参考1(已验证稍加修改可与Arduino通信):https://blog.csdn.net/qq_36106219/article/details/81701368 参考2(比较全,main函数需要自 ...
- P5911 [POI2004]PRZ (状态压缩dp+枚举子集)
题目背景 一只队伍在爬山时碰到了雪崩,他们在逃跑时遇到了一座桥,他们要尽快的过桥. 题目描述 桥已经很旧了, 所以它不能承受太重的东西.任何时候队伍在桥上的人都不能超过一定的限制. 所以这只队伍过桥时 ...
- 版本控制系统之git
一.简介 git是Linux内核项目发起者linus用C语言写的,主要用来做项目的版本控制追踪:git是无中心节点的分布式版本控制系统,也是目前很流行的版本控制系统:其安装简单,使用简单:相比传统的c ...
- 如何免费安装正版Adobe
现在正版的Adobe都非常的贵,如果你想不花钱又想下载正版的Adobe,那么就请花几分钟时间学习以下本篇博客,告诉你如何免费下载正版Adobe! [一定要读完,不要看到一半就以为教您下载的是付费版] ...
- c# 误区系列(一)
前言 整理很早以前认为的一些误区,准备整理一个系列.新手可以看下,然后大佬指点一下是否哪些地方错了. 正文 值类型存在栈上,引用类型存在堆上 很多人认为用这句话来解释值类型和栈类型的区别,甚至有些文章 ...
- 树状数组(BIT)—— 一篇就够了
树状数组(BIT)-- 一篇就够了 前言.内容梗概 本文旨在讲解: 树状数组的原理(起源,原理,模板代码与需要注意的一些知识点) 树状数组的优势,缺点,与比较(eg:线段树) 树状数组的经典例题及其技 ...
- 【组合计数】visit
题目大意 从 \((0,0)\) 开始,每次只可走上下左右一个单位长度,可走重复路,求第 \(T\) 步正好走到 \((n,m)\) 的方案数. 答案要求对 \(MOD\) 取模,\(MOD\) 保证 ...
- spring boot:spring security+oauth2+sso+jwt实现单点登录(spring boot 2.3.3)
一,sso的用途 ? 1,如果有多个应用系统,用户只需要登录一次就可以访问所有相互信任的应用系统. 不需要每次输入用户名称和用户密码, 也不需要创建并记忆多套用户名称和用户密码. 2,系统管理员只需维 ...