Python列表常用函数使用详解(内附详细案例)

举报
士别三日wyx 发表于 2022/01/01 00:08:01 2022/01/01
【摘要】 「作者主页」:士别三日wyx   此文章已录入专栏《Python入门到精通》   2021最新版Python小白教程,针对0基础小白和基础薄弱的伙伴学习 ...

「作者主页」:士别三日wyx
  此文章已录入专栏《Python入门到精通》
  2021最新版Python小白教程,针对0基础小白和基础薄弱的伙伴学习

提示:点击列表中蓝色「函数名」可直达函数解析区域

函数 作用 使用
len 获取列表长度 len( list )
append 添加元素至列表末尾 list.append(‘name’)
extend 添加列表内容至列表末尾 list.extend( list )
insert 添加元素至指定索引 list.insert( 1, ‘text’ )
pop 删除元素根据索引位置 list.pop( 1 )
remove 删除指定元素 list.pop( ‘text’ )
clear 删除列表所有元素 list.clear()
index 获取元素的索引 list.index( ‘text’ )
count 获取元素出现的次数 list.count( ‘text’ )
copy 复制列表 list.copy()
reverse 反转元素的排列顺序 list.reverse()
sort 排序 list.sort()

append()

语法

list.append( element )

  
 
  • 1

参数

  • element:任何类型的元素

列表「末尾」添加元素

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

  
 
  • 1
  • 2
  • 3

输出:

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

  
 
  • 1


「任意类型」
name_list = ['zhangsan', 'lisi', 'wangwu']
name_list.append([1,2,3])
print(name_list)

  
 
  • 1
  • 2
  • 3

输出:

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

  
 
  • 1


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

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

输出:

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

  
 
  • 1
  • 2

补充两个概念:

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

「深拷贝」可解决 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不再同步变化

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

输出:

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

  
 
  • 1
  • 2


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)

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

输出:

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

  
 
  • 1
  • 2


extend()

语法

list.extend(iterable)

  
 
  • 1

参数

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

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

  
 
  • 1
  • 2
  • 3
  • 4
  • 5

输出:

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

  
 
  • 1
  • 2


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

  
 
  • 1
  • 2
  • 3

输出:

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

  
 
  • 1

insert()

语法

list.insert( index, element)

  
 
  • 1

参数

  • 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)

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

输出:

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

  
 
  • 1
  • 2
  • 3
  • 4


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

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

输出:

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

  
 
  • 1
  • 2

pop()

语法

list.pop( index )

  
 
  • 1

参数

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

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

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

  
 
  • 1
  • 2
  • 3

输出:

[1, 2, 3]

  
 
  • 1


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

  
 
  • 1
  • 2
  • 3

输出:

[1, 3, 4]

  
 
  • 1


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

  
 
  • 1
  • 2
  • 3

输出:

2

  
 
  • 1

remove()

语法

list.remove( element )

  
 
  • 1

参数

  • element:任意数据类型

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

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

  
 
  • 1
  • 2
  • 3
  • 4
  • 5

输出:

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

  
 
  • 1
  • 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
  • 3
  • 4
  • 5
  • 6
  • 7

输出:

[1, 2, (5, 6)]
[1, 2]

  
 
  • 1
  • 2

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

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

  
 
  • 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
# 值错误: 需要删除的值不在列表中

  
 
  • 1
  • 2
  • 3
  • 4
  • 5


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

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

  
 
  • 1
  • 2
  • 3

输出:

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

  
 
  • 1
  • 2
  • 3
  • 4
  • 5

文章来源: blog.csdn.net,作者:士别三日wyx,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/wangyuxiang946/article/details/122238775

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。