python学习日记【06 - 列表学习笔记】

列表学习笔记

  • 序列(sequence)
    • 序列是什么
    • 序列有哪些
  • 列表(list)
    • 列表是什么
  • 列表的基本操作
    • 切片
      • 语法及代码示例
    • 通用操作
      • 代码示例
    • 列表的修改(切片和del)
      • 代码示例
    • 列表的方法
      • append() 添加
        • 代码示例
      • insert()插入
        • 代码示例
      • extend()扩展
        • 代码示例
      • pop()删除
        • 代码示例
      • remove()删除
        • 代码示例
      • reverse()翻转
        • 代码示例
      • sort()排序
        • 代码示例
    • 遍历列表
      • for循环遍历列表及示例
      • range(start, stop[, step])用法及示例

序列(sequence)

序列是什么

  • 序列是Python中最基本的一种数据结构。序列用于保存一组有序的数据,所有的数据在序列当中都有一个唯一的位置(索引)并且序列中的数据会按照添加的顺序来分配索引
  • 数据结构指计算机中数据存储的方式

序列有哪些

  • 可变序列(序列中的元素可以改变):例如 列表(list)字典(dict)
  • 不可变序列(序列中的元素不能改变):例如 字符串(str)元组(tuple)

列表(list)

列表是什么

  • 列表是Python中的一个对象
  • 列表的作用
    • 列表中可以保存多个有序的数据
    • 列表是用来存储对象的对象

列表的基本操作

切片

  • 通过切片来获取指定的元素
  • 通过切片获取元素时,会包括起始位置的元素,不会包括结束位置的元素
  • 起始位置和结束位置的索引可以不写
    • 如果省略结束位置, 则会从当前的开始位置一直截取到最后
    • 如果省略开始位置, 则会从第一个元素截取到结束的元素,但是不包括结束的元素
    • 如果开始位置和结束位置都省略, 则则会从第一个元素开始截取到最后一个元素
    • 步长表示每次获取元素的间隔,默认是1(可以省略不写)
    • 步长不能是0,但可以是是负数

语法及代码示例

  • 语法: 列表[起始 : 结束 : 步长]
list1 = [1,2,3,4,5,6,7,8,9]
>>> list1[1:5]
[2, 3, 4, 5]
>>> list[1:5:2]
>>> list1[1:5:2]
[2, 4]
# 反转列表
>>> list1[::-1]
[9, 8, 7, 6, 5, 4, 3, 2, 1]

通用操作

  • + 和 *
  • + 可以将两个列表拼接成一个列表
  • * 可以将列表重复指定的次数 (注意2个列表不能够做乘法,要和整数做乘法运算)
  • in 和 not in
  • in用来检查指定元素是否在列表当中
  • not in 用来检查指定元素是否不在列表当中
  • len() 获取列表中元素的个数
  • max() 获取列表中最大值
  • min() 获取列表中最小值
  • list.index(x[, start[, end]])
  • 第一个参数 获取指定元素在列表中的位置
  • 第二个参数 表示查找的起始位置
  • 第三个参数 表示查找的结束位置
  • list.count(x) 统计指定元素在列表中出现的个数

代码示例

# + 和 *
>>> list1 = [1,2,3]
>>> list2 = [4,5,6]
>>> list1 + list2 # 两个列表相加
[1, 2, 3, 4, 5, 6]
>>> list1 * 3
[1, 2, 3, 1, 2, 3, 1, 2, 3]

# in 和 not in
>>> list1 = [1,2,3,4,5,6]
>>> 1 in list1 # 1 是否在list1中
True
>>> 7 in list1
False
>>> 1 not in list1 # 1 是否不在list1中
False
>>> 7 not in list1
True

# len()
>>> list1 = [1,2,3,4,5,6]
>>> len(list1) # 获取list列表中元素的个数
6

# max()和min()
>>> max(list1)
6
>>> min(list1)
1

# list.index(x[, start[, end]])
>>> list1 = [1,2,3,4,5,6,7,8,9]
>>> list1.index(2)
1
>>> list1.index(9)
8
>>> list1 = ['hello', 'python', 'world']
>>> list1.index('hello')
0
>>> list1.index('python')
1
>>> list1.index('hello', 1, 2) # 查找不到,则抛出ValueError异常
Traceback (most recent call last):
  File "", line 1, in <module>
ValueError: 'hello' is not in list

# list.count(x)
>>> list1 = [1,1,2,3,4,4,4,5,6]
>>> list1.count(1)
2
>>> list1.count(4)
3
>>> list1.count(10) # 10不存在于列表,则出现0次
0

列表的修改(切片和del)

  • 通过切片来修改(起始就是给切片的内容重新赋值,但是赋值的内容必须是一个序列)
  • 当设置了步长时,序列中元素的个数必须和切片中元素的个数保持一致
  • 通过切片来删除元素
  • del list[起始 : 结束]
  • list = []

代码示例

  • 通过切片修改
>>> list1 = [1,2,3,4,5,6]
>>> list1[1:3] = ['a','b','c','d'] 
[1, 'a', 'b', 'c', 'd', 4, 5, 6]
# 指定步长
>>> list1 = [1,2,3,4,5,6]
>>> list1[1:5:2] = ['a','b'] 
>>> list1
[1, 'a', 3, 'b', 5, 6]
# 指定步长 如果序列中元素的个数和切片中元素的个数不一致
# 则会抛出 ValueError 异常
>>> list1[1:5:2] = ['a','b','c']
Traceback (most recent call last):
  File "", line 1, in <module>
ValueError: attempt to assign sequence of size 3 to extended slice of size 2

  • 通过del关键字修改
>>> list1 = [1,2,3,4,5,6]
>>> del list1[1] # 删除列表中索引为1的元素
[1, 3, 4, 5, 6]
>>> del list1[1:3] # 删除索引为1到索引为3(不包含)的元素
>>> list1
[1, 5, 6]
# 如果索引超过列表,则抛出IndexError异常
>>> del list1[10]
Traceback (most recent call last):
  File "", line 1, in <module>
IndexError: list assignment index out of range

列表的方法

append() 添加

  • append() 向列表的最后添加一个元素

代码示例

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

insert()插入

  • insert(arg1,arg2) 像列表指定位置插入一个元素 参数1:要插入的位置 参数2:要插入的元素

代码示例

>>> list1 = [1,2,3,4]
>>> list1.insert(0,'a')
['a', 1, 2, 3, 4]
>>> list1.insert(3,'a')
['a', 1, 2, 'a', 3, 4]

extend()扩展

  • extend(iterable) 使用一个新的序列来扩展当前序列(它会将该序列的中元素添加到列表中) 参数需要传递一个序列

代码示例

>>> list1 = [1,2,3,4]
>>> list2 = [5,6,7]
>>> list1.extend(list2)
>>>> list1
[1, 2, 3, 4, 5, 6, 7]

pop()删除

  • pop() 根据索引删除并返回指定元素

代码示例

>>> list1 = [1,2,3,4]
>>> list1.pop(1) # 删除索引为1的元素,并返回该元素
2
>>> list1
[1, 3, 4]

remove()删除

  • remove() 删除指定元素 (如果相同值的元素有多个,只会删除第一个)

代码示例

>>> list1 = [1,2,3,4]
>>> list1.remove(2) # 删除值为2的元素,非索引
>>> list1
[1, 3, 4]

reverse()翻转

  • reverse() 翻转列表

代码示例

>>> list1 = [1,2,3,4]
>>> list1.reverse() # 把列表顺序反转
>>> list1
[4, 3, 2, 1]

sort()排序

  • sort(key=None,reverse=False) 用来对列表中的元素进行排序

代码示例

>>> list1 = [3,2,1,5,4,8,5,11,2,4]
>>> list1.sort() # 默认按照正序排列
>>> list1
[1, 2, 2, 3, 4, 4, 5, 5, 8, 11]
>>> list1 = [3,2,1,5,4,8,5,11,2,4]
>>> list1.sort(reverse=False) # 指定reverse=False按照倒序排列
>>> list1
[1, 2, 2, 3, 4, 4, 5, 5, 8, 11]

遍历列表

for循环遍历列表及示例

  • for循环的代码块会执行多次,序列中有几个元素就会执行几次。每执行一次就会将序列中的一个元素赋值给变量,所以我们可以通过变量来获取列表中的元素
for 变量 in 序列(遍历的规则):
    代码块

>>> list1 = [1,2,3,4,5]
>>> for i in list1:
...    print(i)
1
2
3
4
5

range(start, stop[, step])用法及示例

参数说明

  • ·start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);
  • stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5
  • step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)
>>> for i in range(5):
...    print(i)
...    
0
1
2
3
4

>>> for i in range(1,5):
...    print(i)
...    
1
2
3
4

>>> for i in range(1,5,2):
...    print(i)
...    
1
3

你可能感兴趣的:(python学习记录,python,列表)