Python列表常用函数使用详解

目录
  • 介绍 
  • append()
  • extend()
  • insert()
  • pop()
  • remove()

介绍 

append()

语法

list.append( element )

参数

element:任何类型的元素

列表「末尾」添加元素

name_list = ['zhangsan', 'lisi', 'wangwu']
name_list.append('zhaoliu')
print(name_list)

输出:

['zhangsan', 'lisi', 'wangwu', 'zhaoliu']

列表末尾可添加 「任意类型」数据,比如在列表中添加列表

name_list = ['zhangsan', 'lisi', 'wangwu']
name_list.append([1,2,3])
print(name_list)

输出:

['zhangsan', 'lisi', 'wangwu', [1, 2, 3]]

append() 函数添加的是「地址」,当被添加的列表发生变化时,添加后的列表也会 「同步变化」

list1 = ['zhangsan']
a = [1,2,3]
list1.append(a)  # 列表list1添加列表a
print(list1)
a.append(4)  # 列表a发生变化
list1.append(a)
print(list1)  # 列表list1也会同步变化

输出:

['zhangsan', [1, 2, 3]]

['zhangsan', [1, 2, 3, 4], [1, 2, 3, 4]]

补充两个概念:

  • 浅拷贝:拷贝这个对象的引用
  • 深拷贝:拷贝对象的内容

「深拷贝」可解决 append() 函数添加列表的同步问题

list1 = ['zhangsan']
a = [1,2,3]
list1.append(copy.deepcopy(a))  # 深拷贝列表a
print(list1)
a.append(4)  # 列表a发生变化
list1.append(copy.deepcopy(a))  # 深拷贝列表a
print(list1)  # 列表list1不再同步变化

输出:

['zhangsan', [1, 2, 3]]

['zhangsan', [1, 2, 3], [1, 2, 3, 4]]

append() 函数和 extend() 函数的区别

1.append() 添加的是元素「引用」,而 extend() 添加的是元素的「值」

2.append() 可以添加「任意类型」元素,而 extend() 只能添加「序列」

比如,添加列表时, append() 会添加整个列表,而 extend() 只会添加列表中的值

list1 = ['zhangsan', 'lisi', 'wangwu']
list2 = ['zhangsan', 'lisi', 'wangwu']
list1.append([1,2,3])
print('append添加整个列表:', list1)
list2.extend([1,2,3])
print('extend添加列表的值:', list2)

输出:

append添加整个列表: ['zhangsan', 'lisi', 'wangwu', [1, 2, 3]]

extend添加列表的值: ['zhangsan', 'lisi', 'wangwu', 1, 2, 3]

extend()

语法

list.extend(iterable)

参数

iterable:任何可迭代对象(列表、元祖等)

向列表 「末尾」添加列表内容

list1 = ['zhangsan', 'lisi', 'wangwu']
list1.extend([1,2,3])  # 列表末尾添加列表
print(list1)
list1.extend((4,5,6))  # 列表末尾添加元祖
print(list1)

输出:

['zhangsan', 'lisi', 'wangwu', 1, 2, 3]

['zhangsan', 'lisi', 'wangwu', 1, 2, 3, 4, 5, 6]

Python中的 「字符串」本质上也是一种数组,属于可迭代对象,可以使用 extend() 添加

list1 = ['zhangsan', 'lisi', 'wangwu']
list1.extend('abc')  # 列表末尾添加字符串
print(list1)

输出:

['zhangsan', 'lisi', 'wangwu', 'a', 'b', 'c']

insert()

语法

list.insert( index, element)

参数

  • index:数字,指定插入的位置
  • element:任意类型,需要插入的元素

insert() 函数可以添加「任意类型」

list1 = ['zhangsan', 'lisi']
list1.insert(2, 2)  # 添加整形
print(list1)
list1.insert(3, 'str')  # 添加字符串
print(list1)
list1.insert(4, [1,2,3])  # 添加列表
print(list1)
list1.insert(5, (4,5,6))  # 添加字典
print(list1)

输出:

['zhangsan', 'lisi', 2]

['zhangsan', 'lisi', 2, 'str']

['zhangsan', 'lisi', 2, 'str', [1, 2, 3]]

['zhangsan', 'lisi', 2, 'str', [1, 2, 3], (4, 5, 6)]

insert同样存在 「列表同步」问题,改为 「软拷贝」即可

list1 = ['zhangsan', 'lisi']
a = [1,2,3]
list1.insert(2, a)  # 添加列表a
print(list1)
a.append(4)  # 列表a发生变化
print(list1)  # 列表同步发生变化

输出:

['zhangsan', 'lisi', [1, 2, 3]]

['zhangsan', 'lisi', [1, 2, 3, 4]]

pop()

语法

list.pop( index )

参数

  • index:数字,需要删除的索引位置,默认值-1
  • 返回值:删除的值

不传参数时,默认删除「最后」一个值

list1 = [1, 2, 3, 4]
list1.pop()
print(list1)

输出:

[1, 2, 3]

删除 「指定」位置的元素

list1 = [1, 2, 3, 4]
list1.pop(1)  # 删除第二个值
print(list1)

输出:

[1, 3, 4]

「返回」被删除的元素

list1 = [1, 2, 3, 4]
a = list1.pop(1)  # 删除第二个值,并返回被删除的值
print(a)

输出:

2

remove()

语法

list.remove( element )

参数

element:任意数据类型

remove() 函数删除「普通类型」元素

list1 = ['zhangsan', 'lisi', 1, 2]
list1.remove(1)  # 删除数字
print(list1)
list1.remove('zhangsan')  # 删除字符串
print(list1)

输出:

['zhangsan', 'lisi', 2]

['lisi', 2]

remove() 函数删除 「对象类型」元素

list1 = [1, 2, [3, 4], (5, 6)]
a = [3, 4]
b = (5, 6)
list1.remove(a)  # 删除列表类型
print(list1)
list1.remove(b)  # 删除元祖类型
print(list1)

输出:

[1, 2, (5, 6)]

[1, 2]

remove() 函数删除对象类型的「前提」是,列表中的元素是对象类型,以下这种方式会报错

list1 = [1, 2, 3, 4, 5]
list1.remove([1,2])

输出:

Traceback (most recent call last):

  File "E:/data/PrCharm/test1/55.py", line 2, in <module>

    list1.remove([1,2])

ValueError: list.remove(x): x not in list

# 值错误: 需要删除的值不在列表中

remove() 函数「一次」只能删除一维数组中的「一个」元素,自己删自己也不行

list1 = [1, 2, 3, 4, 5]
print('我自己在我自己里面吗?', list1 in list1)
list1.remove(list1)

输出:

Traceback (most recent call last):

  File "E:/data/PrCharm/test1/55.py", line 3, in <module>

    list1.remove(list1)

ValueError: list.remove(x): x not in list

我自己在我自己里面吗? False

到此这篇关于Python列表常用函数使用详解的文章就介绍到这了,更多相关Python列表常用函数内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Python操作列表之List.insert()方法的使用

    insert()方法插入对象obj到列表的偏移量索引. 语法 以下是insert()方法的语法: list.insert(index, obj) 参数 index -- 这是要插入对象obj必要的索引 obj -- 这是将被插入到给定的列表中的对象 返回值 此方法不返回任何值,但它插入指定的索引处的指定元素 例子 下面的例子显示了insert()方法的使用 #!/usr/bin/python aList = [123, 'xyz', 'zara', 'abc'] aList.insert( 3,

  • Python列表list常用内建函数实例小结

    本文实例总结了Python列表list常用内建函数.分享给大家供大家参考,具体如下: >>> x = list(range(10)) >>> import random >>> random.shuffle(x) #打乱顺序 >>> x [2, 4, 5, 9, 3, 7, 8, 0, 6, 1] >>> max(x) #返回最大值 9 >>> min(x) #返回最小值 0 >>>

  • python列表中remove()函数的使用方法详解

    目录 1. 基本使用 2. 删除普通类型元素 3. 删除对象类型元素 4. 一次只删一个元素 5.Python列表的remove方法的注意事项 总结 1. 基本使用 remove() 函数可以删除列表中的指定元素 语法 list.remove( element ) 参数 element:任意数据类型(数字.字符串.列表等) 2. 删除普通类型元素 删除一个列表中「存在」的数字或字符串 list1 = ['zhangsan', 'lisi', 1, 2] list1.remove(1) # 删除数

  • Python列表list内建函数用法实例分析【insert、remove、index、pop等】

    本文实例讲述了Python列表list内建函数用法.分享给大家供大家参考,具体如下: #coding=utf8 ''''' 标准类型函数: cmp():进行序列比较的算法规则如下: ----------------------------------------------------------------------------- 1. 对两个列表的元素进行比较 2. 如果比较的元素是同类型的,则比较其值,返回结果 3. 如果两个元素的不是同一种类型,则检查它们是否是数字 a. 如果是数字,

  • 在Python中操作列表之List.pop()方法的使用

    pop()方法从列表移除并返回最后一个对象或obj. 语法 以下是pop()方法的语法: list.pop(obj=list[-1]) 参数 obj -- 这是一个可选参数,该对象的索引可以从该列表中删除 返回值 此方法返回从列表中移除对象 例子 下面的例子显示了pop()方法的使用 #!/usr/bin/python aList = [123, 'xyz', 'zara', 'abc']; print "A List : ", aList.pop(); print "B L

  • Python列表常用函数使用详解

    目录 介绍  append() extend() insert() pop() remove() 介绍  append() 语法 list.append( element ) 参数 element:任何类型的元素 列表「末尾」添加元素 name_list = ['zhangsan', 'lisi', 'wangwu'] name_list.append('zhaoliu') print(name_list) 输出: ['zhangsan', 'lisi', 'wangwu', 'zhaoliu'

  • Python asyncio常用函数使用详解

    目录 协程的定义 协程的运行 多个协程运行 关于loop.close() 回调 事件循环 协程的定义 需要使用 async def 语句 协程可以做哪些事: 1.等待一个future结果 2.等待另一个协程(产生一个结果或引发一个异常) 3.产生一个结果给正在等它的协程 4.引发一个异常给正在等它的协程 协程的运行 调用协程函数,协程不会开始运行,只是返回一个协程对象 要让协程对象运行有两种方式: 1.在另一个已经运行的协程中用await等待它 2.通过ensure_future函数计划它的执行

  • Python数据分析之NumPy常用函数使用详解

    目录 文件读入 1.保存或创建新文件 2.读取csv文件的函数loadtxt 3.常见的函数 4.股票的收益率等 5.对数收益与波动率 6.日期分析 总结 本篇我们将以分析历史股价为例,介绍怎样从文件中载入数据,以及怎样使用NumPy的基本数学和统计分析函数.学习读写文件的方法,并尝试函数式编程和NumPy线性代数运算,来学习NumPy的常用函数. 文件读入 读写文件是数据分析的一项基本技能 CSV(Comma-Separated Value,逗号分隔值)格式是一种常见的文件格式.通常,数据库的

  • python模块常用用法实例详解

    1.time模块(※※※※) import time #导入时间模块 print(time.time()) #返回当前时间的时间戳,可用于计算程序运行时间 print(time.localtime()) #返回当地时间的结构化时间格式,参数默认为时间戳 print(time.gmtime) #返回UTC时间的结构化时间格式 print(time.mktime(time.localtime())) #将结构化时间转换为时间戳 print(time.strftime("%Y-%m-%d %X&quo

  • Python模块glob函数示例详解教程

    目录 本文大纲 支持4个常用的通配符 1)glob()函数 2)iglob()函数 3)escape()函数 总结 本文大纲 glob模块也是Python标准库中一个重要的模块,主要用来查找符合特定规则的目录和文件,并将搜索的到的结果返回到一个列表中.使用这个模块最主要的原因就是,该模块支持几个特殊的正则通配符,用起来贼方便,这个将会在下方为大家进行详细讲解. 支持4个常用的通配符 使用glob模块能够快速查找我们想要的目录和文件,就是由于它支持*.**.? .[ ]这三个通配符,那么它们到底是

  • Python的Lambda函数用法详解

    在Python中有两种函数,一种是def定义的函数,另一种是lambda函数,也就是大家常说的匿名函数.今天我就和大家聊聊lambda函数,在Python编程中,大家习惯将其称为表达式. 1.为什么要用lambda函数? 先举一个例子:将一个列表里的每个元素都平方. 先用def来定义函数,代码如下 def sq(x): return x*x map(sq,[y for y in range(10)]) 再用lambda函数来编写代码 map(lambda x: x*x,[y for y in r

  • calendar在python3时间中常用函数举例详解

    想要在python中写代码游刃有余,没有函数的支持是万万不行的.很多小伙伴反映,最近函数的应用知识不够了,所以小编挑选了python3时间中的函数,希望可以帮助大家在处理日历方面更加的迅速.其他更多的函数,大家也可以自行去搜集一点资料学习,小编就讲几个最简单的吧. 1.firstweekday() firstweekday(): 返回当前每周起始日期值.默认情况下,首次载入calendar模块时返回0,即星期一 import calendar # 0 print(calendar.firstwe

  • C++Vector容器常用函数接口详解

    目录 一.基础框架 二.迭代器实现 三.size capacity resize reserve 四.insert,erase 五.pop_back,push_back 六.operator[] 七.构造函数 析构函数 赋值重载 一.基础框架 template<class T> class vector { public: typedef T* iterator; typedef const T* const_iterator; private: iterator _start;//指向第一个

  • python可视化text()函数使用详解

    这篇文章主要介绍了python可视化text()函数使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 函数功能:添加图形内容细节的无指向型注释文本 调用签名:plt.text(x, y, string, weight="bold", color="b") x: 注释文本内容所在位置的横坐标 y:注释文本内容所在位置的纵坐标 string:注释文本内容 weight:注释文本内容的粗细风格 color:注释文本

  • SQLServer之常用函数总结详解

    SQLServer中的常用函数 字符串函数 len() 计算字符串的长度 select LEN(name) from test1 --计算name的长度 大小写转换 lower() upper() select lower('STUDENT !') select upper('student !') 去空 ltrim() 字符串左侧的空格去掉 ,rtrim()字符串右侧的空格去掉 declare @str varchar(100) = ' a a a ' select ltrim(@str) s

随机推荐