列表 list

定义:由一系列变量组成的可变序列容器。

一、基础操作

1.创建列表:有两种方式

列表名 = []     (里面可以是不同数据类型)

列表名 = list(可迭代对象)   (里面必须是相同数据类型)

list01 = [2,"大强",True]
list01 = list("我叫苏明玉")
list01 = list(range(5))

2.添加元素:

列表名.append(元素)

末尾追加
list02.append("悟空")
list02.append("唐僧")
print(list02)    #  ['悟空', '唐僧']

列表.insert(索引,元素)

在指定位置前面插入元素
list02=['悟空', '唐僧']
list02.insert(1,"八戒")
print(list02)   #  ['悟空', '八戒', '唐僧']

遍历列表:

正向:for 变量名 in 列表名:  变量名就是元素  (不灵活)

# 只支持:正向顺序查找
for item in list01:
    print(item)
  # item = 0 # 不能修改

for 变量名 in (len(列表名)):  列表名[索引名]就是元素  (常用)

索引 + for 定义元素
# 获取列表中每个元素
# 正向
for i in range(len(list01)):
    print(list01[i])
      # list01[i] =0

反向倒叙:for 索引名 in range(len(列表名)-1,-1,-1):  列表名[索引名]就是元素

# 倒序
for i in range(len(list01)-1,-1,-1):
  print(list01[i])

正向跳:for 变量名 in (0:len(列表名):n):  列表名[索引名]就是元素

# 正向跳着
for i in range(0,len(list01),2):
  print(list01[i])

反向跳:for 索引名 in range(len(列表名)-1,-1,-n):  列表名[索引名]就是元素

# 反向跳着
for i in range(len(list01)-1,-1,-2):
  print(list01[i])

删除元素:

列表名.remove(元素)

del 列表名[索引或切片]

list02.remove("悟空")
删除list02中“悟空”的元素
del list02[1]
删除1的位置的元素

修改元素、替换元素、定位元素

修改元素
list03=[1,2,3,4,5,6,]
list03[5] = "沙僧"
print(list03)      #[1, 2, 3, 4, 5, '沙僧']
通过切片获取一个新列表
list04 = list03[:3]
print(list04)      #[1, 2, 3]
通过切片可以修改元素
list03[:3] = ["a"]
print(list03)      #['a', 4, 5, '沙僧']

二、深拷贝和浅拷贝

浅拷贝:是在复制过程中,只复制一层变量,不会复制深层变量绑定的对象的复制过程。

深拷贝:复制整个依懒的变量。

三、列表VS字符串

1.列表和字符串都是序列,元素之间有先后顺序关系。

2.字符串是不可变的序列,列表是可变的序列。

3.字符串中每个元素只能存储字符,而列表可以存储任意类型。

4.列表和字符串都是可迭代对象。

函数:

将多个字符串拼接为一个。

result = "连接符".join(列表)

将一个字符串拆分为多个。

列表 = “a-b-c-d”.split(“分隔符”)

字符串 --> 列表
str02 = "How are you"
list_result = str02.split(" ")
print(list_result)    #['How', 'are', 'you']
列表 -->字符串(反转)
str_result = " ".join(list_result[::-1])
print(str_result)     # you are How

四、列表推导式

定义:使用简易方法,将可迭代对象转换为列表。

语法:

变量 = [表达式 for 变量 in 可迭代对象]

变量 = [表达式 for 变量 in 可迭代对象 if 条件]

说明:如果if真值表达式的布尔值为False,则可迭代对象生成的数据将被丢弃。

列表推导式嵌套

语法:变量 = [表达式 for 变量1 in 可迭代对象1 for 变量2 in可迭代对象2]

# 需求:list01中所有元素的平方存入list02中
# 传统写法
list01 = [4,5,5,66,7,8,9]
list02 = []
for item in list01:
  list02.append(item ** 2)
print(list02)
# 推导式写法
list03 = [item ** 2 for item in list01]
print(list03)