1.list

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

(1)定义方法

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

(2)下标

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

(3)切片

设x是一个列表,则

x[start:end:step]

为列表的一个切片,start为起始位置,包含,可以省略,end为结束位置,不包含,可以省略,step为步长,可以省略,默认为1. 三者都可以为负数. 在这里插入图片描述 三者都省略时为整个列表,反向遍历时可以省略start与end,步长设为-1: 在这里插入图片描述

(4)反向遍历

反向遍历有三种方法:

A.[::-1]

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

B.使用内置函数reversed()

reversed()会返回一个迭代器,想要获取里面的内容可以转换为list(). 在这里插入图片描述

C.使用列表方法.reverse()

在这里插入图片描述 前两种方法不会改变列表,列表方法reverse()改变了列表.

(5)列表推导式

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

[2 for i in range(10)]

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

(6)列表的常用函数

A.extend()

在这里插入图片描述 extend()类似于直接使用+,但是+不会改变列表本身,而extend()会改变列表本身.

B.append()

在这里插入图片描述 append()把参数作为一个元素直接追加到列表中.

C.insert()

insert需要两个参数,分别表示插入的下标与插入的值. 在这里插入图片描述

D.pop()

根据下标删除元素. 在这里插入图片描述

E.remove()

根据值删除元素,删除第一个出现的元素,就是说对于重复元素仅删除第一次出现的元素. 在这里插入图片描述

F.len()

列表长度,注意这个不是列表的方法. 在这里插入图片描述

G.sorted()与sort()

这两个都是排序的方法,sorted()不是列表的方法,把列表作为函数的参数传递,sort是列表的方法,会改变列表本身. 在这里插入图片描述

H.enumerate()

逐个显示对应的下标,返回的是一个迭代器.想要显示可以转换为列表. 在这里插入图片描述

I.zip()

列表的并行计算. 在这里插入图片描述

2.元组

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

(1)定义方法

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

(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)

在这里插入图片描述