1 list

list是一种可变的有序容器,每个元素都拥有自己的下标,列表使用[]定义。

1.1 定义方法

x = [1,2,3] #第一种,使用[]
y = x #第二种,赋值
y = list({1,2,3}) #第三种,使用强制转换函数

1.2 下标

  • 下标从0开始
  • 允许负数作为下标,最后一个元素的下标为-1
  • 第一个元素的下标为-n,第i个元素的下标为(i-1)-(n-i+1)

1.3 切片

设x是一个列表,则

x[start:end:step]

为列表的一个切片,start为起始位置,包含,可以省略,end为结束位置,不包含,可以省略,step为步长,可以省略,默认为1。

三者都可以为负数。

在这里插入图片描述

三者都省略时为整个列表,反向遍历时可以省略startend,步长设为-1

在这里插入图片描述

1.4 反向遍历

反向遍历有三种方法:

1.4.1 [::-1]

使用切片[::-1],像上面一样,步长设为-1

1.4.2 reversed()

也可以使用内置函数reversed()reversed()会返回一个迭代器,想要获取里面的内容可以转换为list()

在这里插入图片描述

1.4.3 reverse()

也可以使用列表方法.reverse()

在这里插入图片描述

前两种方法不会改变列表,列表方法.reverse()会改变列表。

1.5 列表推导式

列表推导式可用于快速生成有规律性的列表,比如生成包含10个2的列表:

[2 for i in range(10)]

有点类似于把for循环的循环体提到前面。

1.6 列表的常用函数

1.6.1 extend()

在这里插入图片描述

extend()类似于直接使用运算符+,但是+不会改变列表本身,而extend()会改变列表本身。

1.6.2 append()

在这里插入图片描述

append()把参数作为一个元素直接追加到列表中。

1.6.3 insert()

insert()需要两个参数,分别表示插入的下标与插入的值。

在这里插入图片描述

1.6.4 pop()

根据下标删除元素。

在这里插入图片描述

1.6.5 remove()

根据值删除元素,删除第一个出现的元素,就是说对于重复元素仅删除第一次出现的元素。

在这里插入图片描述

1.6.6 len()

列表长度,注意这个不是列表的方法。

在这里插入图片描述

1.6.7 sorted()sort()

这两个都是排序的方法,sorted()不是列表的方法,把列表作为函数的参数传递,sort是列表的方法,会改变列表本身。

在这里插入图片描述

1.6.8 enumerate()

逐个显示对应的下标,返回的是一个迭代器,想要显示可以转换为列表。

在这里插入图片描述

1.6.9 zip()

列表的并行计算。

在这里插入图片描述

2 元组

元组是不可变的有序容器,用()表示。

2.1 定义方法

x = (1,2,3,4,5) #第一种,使用()
y = x #第二种,使用赋值
x = tuple('kkkrrr') #第三种,使用tuple强制转换
x = 1,2,3,4,5 #第四种,实质上还是第一种,省略了圆括号

2.2 特点

用逗号分隔的都是元组,是不可变对象,支持拆包式赋值。

在这里插入图片描述

2.3 应用

交换两个变量:

在这里插入图片描述

函数的不定长参数:

def fun(arg1,*arg2):
    print(arg1)
    if arg2 != ():
        if len(arg2) == 1:
            print(arg2[0])
        else:
            print(arg2)
fun(1)
fun(2,3)
fun(4,5,6)

在这里插入图片描述


氷泠
420 声望647 粉丝