Python学习笔记(1)——列表的索引、切片、增删改和排序


列表是由一系列按顺序排列的元素组成,列表的元素可以是字母、数字或任何东西,它们之间没有关系,用方括号([ ])表示列表。

列表的索引、切片、增删改和排序

1.索引从0开始

与大多数编程语言一样,列表的索引从0开始,而且还提供从右往左数。

numbers = [1,2,3,4,5,6,7,8,9,10]
numbers     #输出所有元素
numbers[0]  #从左往右输出第一个元素
numbers[9]  #从左往右输出最后一个元素
numbers[-1] #从右往左输出第一个元素 此处的-表示从右往左数(从-1开始)
numbers[-2] #从右往左输出第二个元素

2.用切片访问多个元素

可以指定两个索引为切片的边界,访问列表中的一段,需要注意的是第二个索引指定的元素不含在切片内。

numbers[0:5]
numbers[-3:-1]  #不包含最后的元素
numbers[-3:]    #这样可以包含最后一个元素
numbers[:5]     #从头开始可以省略第一个索引
numbers[:]      #两个索引都省略就是访问所有元素
numbers[2:1]    #如果第二个索引比第一个小,返回空

加上步长,就可以跳着访问元素了,默认步长是1。

numbers[0:10:2]   #例如从1到2步长为1,此时要求输出的就是从0开始,每隔步长为2的数
numbers[0:10:3]   #步长为3
numbers[10:0:-3]  #从右往左开始输出,步长为3

3.使用加法和乘法

加法运算可用来拼接序列;乘法运算可用来创建一个重复n次的新列表。

numbers + [11,12,13]
numbers
newNumbers = numbers * 2
newNumbers

4.4. in、len、min、max、sum

检查一个值是否包含在列表中可以用运算符in;

内置函数len、min、max、sum用于返回列表的长度、最小值、最大值和总和;

>>> numbers
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> 2 in numbers
True
>>> 'aa' in numbers
False
 
>>> len(numbers)
10
>>> min(numbers)
1
>>> max(numbers)
10
>>> max(['a','b'])
'b'
>>> sum(numbers)
55

5. 利用索引和切片操作列表

(小声bb,截图太麻烦了,我后面直接把结果给复制过来就不截图了hhhh!!)
利用索引可以直接修改或删除列表的元素。

>>> numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> numbers[0] = -1
>>> numbers
[-1, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> del numbers[0]
>>> numbers
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

也可以利用切片修改多个元素,甚至可以巧妙的插入或删除元素。

>>> numbers
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> numbers[:3] = [0,0,0]  # 把前3个元素改成0
>>> numbers
[0, 0, 0, 4, 5, 6, 7, 8, 9, 10]
>>> numbers[:3] = []  # 把前3个元素删掉
>>> numbers
[4, 5, 6, 7, 8, 9, 10]
>>> numbers[0:0] = [1,2,3]  # 在索引0出再插入1,2,3
>>> numbers
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> del numbers[:3]  # 也可以用del删除元素
>>> numbers
[4, 5, 6, 7, 8, 9, 10]

6.列表常用方法

  • append、extend、insert

append方法用于将一个对象追加到列表末尾;

extend方法可以将多个值追加到末尾;

insert方法可以在指定位置插入元素。

>>> a = [1, 2, 3]
>>> a.append(4)
>>> a
[1, 2, 3, 4]
>>> a.extend([5, 6, 7])
>>> a
[1, 2, 3, 4, 5, 6, 7]
>>> a = [1, 2, 3, 4, 5, 6, 7]
>>> a.insert(3, 3.5)
>>> a
[1, 2, 3, 3.5, 4, 5, 6, 7]
  • pop、remove、clear
    pop方法从列表中删除一个元素(默认为最后一个元素),并返回被删除的元素;

remove方法的参数是一个指定值,用于删除列表中第一个该指定值的元素;

clear方法清空列表。

>>> a = [1, 2, 3]
>>> a.pop()
3
>>> a
[1, 2]
>>> a.pop(0)
1
>>> a
[2]
>>> b = [1, 2, 3, 3, 2, 1]
>>> b.remove(2)
>>> b
[1, 3, 3, 2, 1]
>>> b.clear()
>>> b
[]
  • count、index

count方法用于计算指定元素在列表中出现的次数;

index方法用于查找指定值第一次出现的位置,找不到的话就会报错。

>>> a = [1, 2, 3] * 2
>>> a
[1, 2, 3, 1, 2, 3]
>>> a.count(1)
2
>>> a.index(3)
2

  • copy
    copy方法可以复制列表,也可以说是创建一个副本,也可以用a[:]或list(a)的方式来复制a,但b=a却不能复制a,而是将另一个名称关联到li列表。
>>> a = [1, 2, 3]
>>> b = a  # a和b指向同一个列表 类似于C中a,b指向同一个地址
>>> b[0] = -1
>>> a
[-1, 2, 3]
>>> 
>>> a = [1, 2, 3]
>>> # 使用copy方法创建一个副本
>>> b = a.copy()
>>> b[0] = -1
>>> b
[-1, 2, 3]
>>> a
[1, 2, 3]
>>> # 使用a[:]创建一个副本
>>> c = a[:]
>>> c[0] = -1
>>> c
[-1, 2, 3]
>>> a
[1, 2, 3]
>>> # 使用list(a)创建一个副本
>>> d = list(a)
>>> d[0] = -1
>>> d
[-1, 2, 3]
>>> a
[1, 2, 3]
  • everse、sort、sorted
    reverse方法将列表逆序排列,直接修改原列表,但不返回值;

sort方法对列表中的元素按顺序排序,同样是xiug修改原列表,不返回值;

sorted方法对列表排序并返回一个排序后的副本,不修改原列表。

>>> a = [1 ,5, 2, 9, 8, 10]
>>> a.reverse()
>>> a
[10, 8, 9, 2, 5, 1]
>>> a = [1 ,5, 2, 9, 8, 10]
>>> a.sort()
>>> a
[1, 2, 5, 8, 9, 10]
>>> a = [1 ,5, 2, 9, 8, 10]
>>> b = sorted(a)
>>> b
[1, 2, 5, 8, 9, 10]
>>> a
[1, 5, 2, 9, 8, 10]

sort方法有两个可选参数:key和reverse。参数key的值可以是一个用于排序的函数(可以是自定义函数),该函数为每个元素创建一个键,在根据这些键值来排序。reverse默认值为False,设为True时则逆序排列。

7.元组

如果想创建一系列不可修改的元素,可以使用元组。定义一个元组的方式是用逗号分隔元素,也可以用圆括号括起来。使用tuple方法可将列表转换为元组。

>>> a = 1,2,3
>>> a
(1, 2, 3)
>>> b = (1,2,3)
>>> b
(1, 2, 3)
>>> c = 1,  # 创建只含一个元素的元组,必须有逗号
>>> c
(1,)
>>> d = tuple([3,2,1])
>>> d
(3, 2, 1)

文章作者: Jelly
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Jelly !
  目录