列表是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个重要操作的更多相关文章

  1. python列表的11种方法

    python列表的11种方法2017年11月24日 03:26:43 Milton-Long 阅读数:254版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.n ...

  2. Python列表,元组,字典,集合详细操作

    菜鸟学Python第五天 数据类型常用操作及内置方法 列表(list) ======================================基本使用====================== ...

  3. python3笔记十八:python列表元组字典集合文件操作

    一:学习内容 列表元组字典集合文件操作 二:列表元组字典集合文件操作 代码: import pickle  #数据持久性模块 #封装的方法def OptionData(data,path):    # ...

  4. Python列表,字典和字符串操作

    列表: 列表:list, 也叫数组,表现[].特点:有角标,元素可以重复,有序的元素 例子:stus = ['王志华','乔美玲','乔美玲','王文文','feixiang']#中括号,这就是一个l ...

  5. Python 列表List的定义及操作

    # 列表概念:有序的可变的元素集合 # 定义 # 直接定义 nums = [1,2,3,4,5] # 通过range函数构造,python2 和python3 版本之间的差异: # python3 用 ...

  6. python列表和元组的常用操作

    一.列表 需要安利一下:列表和字符串数是不一样的.进行操作时列表可以发生改变,而字符串不可以,所以直接在原来的对象上操作. 1.列表的增加 def append(self, p_object): # ...

  7. Python 列表切片陷阱:引用、复制与深复制

    Python 列表的切片和赋值操作很基础,之前也遇到过一些坑,以为自己很懂了.但今天刷 Codewars 时发现了一个更大的坑,故在此记录. Python 列表赋值:复制"值"还是 ...

  8. python列表底层实现原理

    Python 列表的数据结构是怎么样的? 书上说的是:列表实现可以是数组和链表.顺序表是怎么回事?顺序表一般是数组. 列表是一个线性的集合,它允许用户在任何位置插入.删除.访问和替换元素.列表实现是基 ...

  9. (转载)Python 列表(list)操作

    (转载)http://blog.csdn.net/facevoid/article/details/5338048 创建列表sample_list = ['a',1,('a','b')] Python ...

随机推荐

  1. three.js学习5_渲染器

    THREE.WebGLRenderer WebGL Render 用WebGL渲染出你精心制作的场景 介绍 在之前的介绍中, 已经介绍过场景, 相机, 光源, 有了这些后, 就可以形成一个可观的三维展 ...

  2. Sprign-mvc系列之Spring快速入门 什么是sprign-mvc spring-mvc的作用及其基本使用+组件解析+注解解析

    Spring-mvc 什么是SpringMvc SpringMvc是一种基于java的实现Mvc设计模式的请求驱动类型的轻量级web框架,属于SpringFrameWork的后续产品,已经融合在Spr ...

  3. Tomcat 第六篇:类加载机制

    1. 引言 Tomcat 在部署 Web 应用的时候,是将应用放在 webapps 文件夹目录下,而 webapps 对应到 Tomcat 中是容器 Host ,里面的文件夹则是对应到 Context ...

  4. 机器学习算法——kNN(k-近邻算法)

    算法概述 通过测量不同特征值之间的距离进行 [分类] 优点:精度高.对异常值不敏感.无数据输入假定. 缺点:计算复杂度高.空间复杂度高. 适用数据范围: 数值型 和 标称型 . 算法流程 数据 样本数 ...

  5. nrf528xx bootloader 模块介绍

    1. bootloader 的基本功能: 启动应用 几个应用之间切换 初始化外设 nordic nrf52xxx的bootloader主要功能用来做DFU, 可以通过HCI, UART 或BLE通信的 ...

  6. java -inally转

    1.不管有木有出现异常,finally块中代码都会执行: 2.当try和catch中有return时,finally仍然会执行:3.finally是在return后面的表达式运算后执行的(此时并没有返 ...

  7. C#实现迭代器

    迭代器模式(Iterator),提供一种方法顺序访问一个聚合对象中的各种元素,而又不暴露该对象的内部表示.C#中使用IEnumerator接口实现,Java中使用Iterator接口实现,其中原理都差 ...

  8. 本文介绍如何使用 Docker Swarm 来部署 Nebula Graph 集群,并部署客户端负载均衡和高可用

    本文作者系:视野金服工程师 | 吴海胜 首发于 Nebula Graph 论坛:https://discuss.nebula-graph.com.cn/t/topic/1388 一.前言 本文介绍如何 ...

  9. docker overlay原理

    周末两天研究了一下docker overlay网络的原理,因为我本身对go语言不太熟悉,直接看docker官方的libnetwork库看不太懂,看linux内核的vxlan代码又粗心大意,导致有一个环 ...

  10. 【自学编程】C语言编程简单的小程序,计算长方体体积!

    计算长方体体积 有朋友会说长方体体积还不好算吗?长X宽X高.没错用计算器一下就可以出结果,编程反而麻烦些,但是我们说的是这种思维,如果复杂的重复运算的话写好程序就非常简单了. 简单运算下一个固定高度的 ...