AI智能
改变未来

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添加列表aprint(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))  # 深拷贝列表aprint(list1)a.append(4)  # 列表a发生变化list1.append(copy.deepcopy(a))  # 深拷贝列表aprint(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)  # 添加列表aprint(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列表常用函数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:

  • python列表中remove()函数的使用方法详解
  • Python列表list常用内建函数实例小结
  • Python列表list内建函数用法实例分析【insert、remove、index、pop等】
  • 在Python中操作列表之List.pop()方法的使用
  • Python操作列表之List.insert()方法的使用
赞(0) 打赏
未经允许不得转载:爱站程序员基地 » Python列表常用函数使用详解