认识列表

可变数据类型,可以一次性存储多个数据,且可以为不同数据类型,是一系列的数值的序列。列表中的元素又叫列表项

  • 列表用 [ ] 定义,数据之间用 「 , 」分隔

    1. ['spam', 2.0, 5, [10,20], (20,30)]

    上述代码中,可以看出列表可以由不同数据类型元素构成。同时包含列表的列表也叫网状列表、列表嵌套

  • list() 函数创建 ```python

    list(‘hello’)


[‘h’, ‘e’, ‘l’, ‘l’, ‘o’] ```

列表属性

转换

list() 函数,参数 iterable 是可迭代对象(字符串、列表、元组、集合和字典等)

  1. a = 'hello'
  2. print(list(a))

索引

语法: list[ index ],列表的索引默认从 0 开始

  1. # 获取数据 jerr
  2. a = ['tom', 'jerr', 'heha']
  3. print(a[1])
  4. ---------------------------
  5. >>> 'jerr'
  1. # 获取数据 heho
  2. remix = [[1, 5.0, 'haha'], ['mars', 'tom', 'heho']]
  3. print(remix[1][2])
  4. ---------------------------------------------------
  5. >>> 'heho'

上述代码,一个列表就是一个元素,所以 remix 有两个元素。通过 remix[1] 获取 remix 列表中第二个元素即 remix[1] = [‘mars’, ‘tom’, ‘heho’],此时再用 remix[1][2] 就可以获取到 heho,相当于获取列表 [‘mars’, ‘tom’, ‘heho’][2] 的元素

切片

对操作的对象截取其中一部分的操作,字符串、列表、元组都支持切片操作

  • 语法: 列表序列 [ start: end: step]
    • start: 切片操作包含开始位置的元素。正数索引表示从左到右默认从 0 开始取元素,负数索引表示从右到左默认从 -1 开始取元素
    • end: 切片操作不包含结束位置的元素
    • step: 代表每次取值的跨度,不写表示默认是 1。步长为负数,表示倒序(从右往左)选取数据
    • 步长: 代表每次取值的跨度,默认是 1,正数表示从左到右,负数表示从右到左
  • 选取方向和步长的方向冲突,则无法选取数据 ```python a = [1, 2, 0.3, 4, 5, 6] temp = a[1: 4: -1] print(temp)

[] # 选取方向和步长冲突 ```

列表方法

增加

  • append()
    • 列表序列.append( )
    • 追加的数据是一个元素,则添加该元素到列表元素结尾
    • 追加的数据是一个序列,则将整个序列到列表元素结尾 ```python name_list = [‘Tom’, ‘Lily’, ‘Rose’] name_list.append([‘xiaoming’, ‘xiaohong’]) print(name_list)

[‘Tom’, ‘Lily’, ‘Rose’, [‘xiaoming’, ‘xiaohong’]] ```

  • extend()
    • 列表序列.extend( )
    • 列表结尾追加的是单个数据,则单个数据会被拆分逐一添加
    • 追加的数据是一个序列,则将这个序列的数据逐一添加到列表 ```python name_list = [‘tom’,’jerry’,’add’] print(name_list.extend(‘hehe’))

[‘tom’, ‘jerry’, ‘add’, ‘h’, ‘e’, ‘h’, ‘e’]

  1. ```python
  2. name_list = ['Tom', 'Lily', 'Rose']
  3. name_list.extend(['xiaoming', 'xiaohong'])
  4. print(name_list)
  5. ----------------------------------------------------
  6. ['Tom', 'Lily', 'Rose', 'xiaoming', 'xiaohong']
  • insert()

    • 列表序列.insert(下表位置, 数据 )
  • 列表相加 ```python a = [1, 2, 3] b = [‘a’, ‘b’, ‘c’] c = a + b print(c)


[1, 2, 3, ‘a’, ‘b’, ‘c’] ``` 列表相加,相当于把后面的一个列表数据追加到第一个列表后面

  • insert()
    • 列表序列.insert(index, data),index 指插入位置,data 指要插入的元素 ```python name_list = [‘Tom’, ‘Lily’, ‘Rose’] name_list.insert(1, ‘xiaoming’) print(name_list)

[‘Tom’, ‘xiaoming’, ‘Lily’, ‘Rose’] ```

删除

  • remove()
    • 列表序列.remove( data )。指定数据删除。
    • 移除列表数据中第一个匹配项其它符合条件的不移除
    • 返回移除的元素,要移除的元素不存在则抛出异常 ```python values = [1, 0.5, 3, 1] values.remove(1) values

[0.5, 3, 1] ```

  • pop()
    • 列表序列.pop( index。通过索引删除数据
    • 如果不写下标,默认删除列表最后一个数据,并返回删除数据后的列表
    • 如果写下标,则删除下表对应的数据,并返回删除数据后的列表


  • clear()

    • 列表序列.clear()。是清空列表不是删除数据
    • 返回空列表
  • del 和 del(【index】)

    • del 目标 或 del(目标)
    • del 列表[下标],可以删除指定下标数据 ```python a = [1, 2, 3] del a

不会返回任何数据

```python
a = [1, 2, 3]
del a[1]
----------------------
返回删除数据后的列表

修改

  • 列表序列[ index ] = 新数据,修改指定下标数据

查找

  • index()

    • 列表序列.index( 数据, 【 开始位置下标,结束位置下标 】)
    • 列表序列.rindex( 数据, 开始位置下标, 结束位置下标 ),从右侧开始查找数据
    • 如果数据存在就返回数据开始的位置下标,否则返回错误
  • count()

    • 列表序列.count( 数据,【 开始位置下标,结束位置下标 】)
    • 开始和结束位置下标可以省略,表示在整个列表序列中出现的次数
    • 如果存在就返回存在的次数,否则返回 0


  • len()
    • len( 列表序列 )
    • 返回值是列表中数据的个数

      index()、count()开始和结束位置下标 可以省略,表示在整个列表序列中执行

排序

  • sort()
    • 列表序列.sort( key=None,【 reverse=False 】 )
    • 会改变原来列表中的位置

      reverse表示排序规则,reverse = True 降序, reverse = False 升序(默认)

  • sorted()
    • sorted 函数不会更改原来列表的位置
    • 返回一个排序后的值 ```python x = [4, 2, 1, 5, 3] y = sorted(x) print(y)


<a name="vcC9c"></a>
#### 判断

- 列表序列**.in**( 数据 )
   - 检查指定数据在数据序列中,在则返回 True,否则返回False
```python
x = [1,2,3]
print(1 in x)
-------------------
>>> True
  • 列表序列.not in( 数据 )
    • 检查指定数据在数据序列中,不在则返回 True,否则返回False

复制

复制给新的变量,用于保存原列表,因为列表是可变数据类型,避免列表操作时原列表数据丢失

  • 列表序列.copy() ```python name_list = [‘Tom’, ‘Lily’, ‘Rose’] name_li2 = name_list.copy() print(name_li2)

[‘Tom’, ‘Lily’, ‘Rose’] ```

列表遍历

遍历就是 从头到尾依次 从列表中获取数据,在循环体内部针对每一个元素执行相同的操作
在 Python 中为了提高列表的遍历效率,专门提供了 迭代 iteration 遍历

  • while, 不推荐使用此方法遍历

    name_list = ['tom','lily','rose']
    i = 0
    while i < len(name_list):
      print(name_list[i])
      i += 1
    
  • for, 语法: for 循环内部使用的变量 in 列表,推荐此方法遍历

    for name in name_list:                           # 以 for...in 为开始,: 为结束进行缩进
      print(name)                                  # 针对列表元素进行相应操作,此处为打印操作