学习笔记-Python基础篇03—列表List


列表是由一系列按照特定顺序排列的元素组成,可以通过方括号([])来表示列表,并用逗号分隔里面的元素。

>>> alist = [1,2,3,4,5,6]
>>> alist
[1, 2, 3, 4, 5, 6]

列表的基础操作

列表元素的访问(索引和切片)

>>> alist[0]
1
>>> alist[-1]
6
>>> alist[-2:]
[5, 6]
>>> alist[1:3]
[2, 3]

列表元素的修改

>>> alist[0] = 22
>>> alist
[22, 2, 3, 4, 5, 6]

列表的拷贝

#浅拷贝,blist修改元素不影响alist
>>> blist = alist[:]
>>> blist
[22, 2, 3, 4, 5, 6]
>>> blist[0] = 0
>>> alist
[22, 2, 3, 4, 5, 6]
#深拷贝,clist修改元素影响blist
>>> clist = blist
>>> clist[0] = 12
>>> blist
[12, 2, 3, 4, 5, 6]

计算列表长度

>>> blist
[12, 2, 3, 4, 5, 6]
>>> len(blist)
6

列表的常见方法

列表元素的增加
在列表末尾添加一个元素,append()

>>> alist = []
>>> alist.append(1)
>>> alist
[1]
>>> alist.append(2)
>>> alist
[1, 2]

在列表中插入一个元素,insert()

>>> blist = [1,2,3,4]
>>> blist.insert(1,5)
>>> blist
[1, 5, 2, 3, 4]

使用可迭代对象中的所有元素来扩展列表,extend()
近似 相当于 += 或 a[len(a)]=b

>>> blist
[1, 5, 2, 3, 4]
>>> alist
[1, 2]
>>> alist.extend(blist)
>>> alist
[1, 2, 1, 5, 2, 3, 4]
>>> alist =[1,2]
>>> alist[len(alist):] = blist
>>> alist
[1, 2, 1, 5, 2, 3, 4]

列表元素的删除
删除指定位置的元素并返回它,pop()
如果pop()没有给定参数,则删除并返回最后一个元素

>>> alist
[1, 2, 1, 5, 2, 3, 4]
>>> alist.pop()
4
>>> alist
[1, 2, 1, 5, 2, 3]

如果给定参数,则删除指定参数位置的元素并返回之

>>> alist
[1, 2, 1, 5, 2, 3]
>>> alist.pop(1)
2
>>> alist
[1, 1, 5, 2, 3]

移除第一个值为指定值的元素,如果没有则会报错,remove()

>>> alist
[1, 1, 5, 2, 3]
>>> alist.remove(1)
>>> alist
[1, 5, 2, 3]
>>> alist.remove(4)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: list.remove(x): x not in list

删除所有元素,clear()

>>> alist
[1, 5, 2, 3]
>>> alist.clear()
>>> alist
[]

列表永久性排序,sort()

>>> alist = [1,2,4,3,8,6]
>>> alist.sort()
>>> alist
[1, 2, 3, 4, 6, 8]
>>> alist.sort(reverse = True)
>>> alist
[8, 6, 4, 3, 2, 1]

元素反转排列顺序,reverse()

>>> alist = [2,3,4,9,8,7]
>>> alist.reverse()
>>> alist
[7, 8, 9, 4, 3, 2]

我们也可以采用切片的形式进行反转

>>> alist
[7, 8, 9, 4, 3, 2]
>>> alist[::-1]
[2, 3, 4, 9, 8, 7]

列表的浅拷贝
上面我们提到过 b = a[:]相当于浅拷贝,修改b的时候不影响a。
我们也可以通过copy()进行浅拷贝

>>> alist
[7, 8, 9, 4, 3, 2]
>>> blist = alist.copy()
>>> blist[1] = 10
>>> alist
[7, 8, 9, 4, 3, 2]

一些常用语句

del语句

有一种方式可以从列表按照给定的索引而不是值来移除一个元素: 那就是 del 语句。 它不同于会返回一个值的 pop() 方法。 del 语句也可以用来从列表中移除切片或者清空整个列表(我们之前用过的方式是将一个空列表赋值给指定的切片)。

>>> alist
[7, 8, 9, 4, 3, 2]
>>> del alist[0]
>>> alist
[8, 9, 4, 3, 2]
>>> del alist[0:2]
>>> alist
[4, 3, 2]
>>> del alist[:]
>>> alist
[]
>>> del alist #删除了alist变量
>>> alist
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'alist' is not defined

sorted语句
sorted()返回一个新的已排序列表,不会影响原有列表的排序

>>> alist = [2,3,4,9,8,7]
>>> sorted(alist)
[2, 3, 4, 7, 8, 9]
>>> alist
[2, 3, 4, 9, 8, 7]
>>> sorted(alist,reverse = True)
[9, 8, 7, 4, 3, 2]

列表推导式

列表推导式提供了一个更简单的创建列表的方法。常见的用法是把某种操作应用于序列或可迭代对象的每个元素上,然后使用其结果来创建列表,或者通过满足某些特定条件元素来创建子序列。

比如 常规的我们使用 for循环创建一个列表

>>> alist = []
>>> for i in range(1,10):
...     alist.append(i)
>>> alist
>>> [1, 2, 3, 4, 5, 6, 7, 8, 9]

以上相当于

>>> alist = list(i for i in range(1,10))
>>> alist = [i for i in range(1,10)]

列表推导式的结构是由一对方括号所包含的以下内容:一个表达式,后面跟一个 for 子句,然后是零个或多个 for 或 if 子句。 其结果将是一个新列表,由对表达式依据后面的 for 和 if 子句的内容进行求值计算而得出。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值