3、Python列表

1、定义

列表(list)可以一次存储多个数据, 并且保存在同一个变量中 ,是一个容器类型

2、列表的遍历

1、for

for i in list1:
    print(i)

2、while

i = 0
while i <= len(list1) - 1:
    # 此时获取的i就是索引值
    print(i, end=':')
    # 此时可以依次根据元素下标取值
    print(list1[i])
    i += 1

3、列表的增操作

1、append()

在列表末尾增加数据

list1 = [1, 2, 3]
list1.append(4)
list1.append([6, 7, 8])
print(list1)  # [1, 2, 3, 4, 5, [6, 7, 8]]

2、extend()

  • 在列表的末尾扩展一个容器类型数据,也就是将容器类型的数据内部元素依次提取出来,追加到列表末尾
  • 修改的也是原列表, 不会产生新的列表数据
  • 在extend内部必须传入可迭代数据类型(容器类型), 否则报错
list2 = [1, 2, 3]
list2.extend([4, 5, 6])
print(list2)  # [1, 2, 3, 4, 5, 6]
# list2.extend(3)
# TypeError: 'int' object is not iterable
# 在extend内部必须传入可迭代数据类型(容器类型), 否则报错
# 哪怕容器类型中只有一个元素,或者没有元素,都可以,但是非容器类型就不行.
list2.extend('3')
print(list2)  # [1, 2, 3, 4, 5, 6, '3']

3、insert()

  • 在列表的指定索引位置增加一个指定元素
list3 = [1, 2, 3]
list3.insert(1, 4) // 下标为1
print(list3)  # [1, 4, 2, 3]

4、列表的查的操作

1、index()

  • 查询指定元素出现的索引值
  • 如果查询的元素不存在,将报错
  • 如果列表中存在多个相同的元素,那我们只获取从左至右第一个该元素的索引值
list1 = ['python', 'java', 'c++', 'go', 'php', 'go']
print(list1.index('java'))  # 1
# 如果查询的元素不存在,将报错
# ValueError: 'JavaScript' is not in list
print(list1.index('go'))  # 3

2、count()

  • 查询指定元素在列表中出现的次数
print(list1.count('python'))  # 1

3、in not in

  • 判断元素是否在容器中
  • 元素 in 容器,not in判断是否不在容器内
list2 = [2, 3, 4, 5]
print(4 in list2)  # True
print(4 not in list2)  # False

5、列表删除操作

1、remove()

  • remove是根据数据的值删除该元素的方法,不会产生新的列表,而是在原有列表上修改数据
  • 使用remove删除列表元素时,列表中元素必须存在,否则报错
list1 = [1, 2, 3, 3, 2, 1, 4, 5, 6]
list1.remove(2) # remove 只能删除从左至右第一个出现的该元素. 无法全部删除

2、pop()

  • pop 是根据数据的索引,删除指定位置元素的方法
  • 删除不存在的索引位置的数据,会报错
list2 = [1, 2, 4, 3, 2]
pop_value = list2.pop(3)

3、clear()

  • 清空列表, 此时列表数据为空

4、del()

  • 不是 列表的专有操作方式, 所有的容器只要内部数据可以被删除,都可以使用del,但是前提是你必须找到该元素
  • 如果要删除这个元素,必须要先可以获取到这个元素
  • 如果我们要删除数据的索引不存在则会报错.
  • 列表中删除元素会影响原数据的索引值
list5 = [1, 2, 3, 4, 5]
del list5[4] # [1, 2, 3, 4]
del list5[12] # IndexError: list assignment index out of range
del list5 # 这个删除方法比较暴力,所以我们尽量使用poNameError: name 'list5' is not defined

6、列表的排序以及逆转

1、reverse()

  • 列表的反转
list1 = [1, 5, 6, 3, 4, 8, 2]
print(list1[::-1])  # [2, 8, 4, 3, 6, 5, 1]
print(list1.reverse()) # [2, 8, 4, 3, 6, 5, 1]

2、sort()

列表的排序

list2 = [1, 5, 6, 3, 4, 8, 2]
print(list2.sort())
list3.sort(reverse=True) # 逆排序

7、列表推导式

列表推导式,按照一定规则快速生成一个列表的方法.

  • 变量 = [要插入列表中的数据 for 临时变量 in 容器] 按照循环规则进行列表生成
  • 变量 = [要插入列表中的数据 for 临时变量 in 容器 if 条件] 循环后进行条件判断,然后生成列表
# 1、创建一个列表,内部是从0-9的数字
list2 = [i for i in range(10)]
# 2、创建一个列表,内部从0-9的偶数
list4 = [i for i in range(10) if i % 2 == 0]
# 3、创建一个列表,内容为['传智1.jpg', '传智2.jpg'.......'传智10.jpg']
list6 = [f'传智{i}.jpg' for i in range(1, 11)]
# 4、 创建一个列表,内部存放从0-100间既不是7的倍数,数字中又不含有7的数字
list8 = [i for i in range(101) if i % 7 != 0 if str(i).count('7') == 0]
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容