08 列表list
本模块详细讲解了列表的相关操作
1 列表的增删改查
增加:append与insert
删除:remove与pop与del
修改:根据索引修改
查询:根据索引查询和使用enumerate函数查询
2 列表的求和 sum
3 列表的排序 sorted
4 列表的清空
5 多维列表
#!/usr/bin/env python
# -*- coding:utf-8 -*-
"""
列表:list []
字典:dict {}
元组:tuple ()
集合:set {}
"""
# 创建列表
# 创建空列表
list1 = []
list2 = list()
print(list1)
print(list2)
# 创建带有元素的列表
# 列表可以存放任意类型的数据
list1 = ['张三', '李四', True, False, 3.14, 100, []]
print(list1)
# 列表的增删改查
# append:添加数据,默认在末尾添加数据,也可以理解为追加
name = ['张三', '李四', '王五', '赵六']
name.append('田七')
print(name)
# insert(插入的索引值,插入的对象):根据索引插入数据
name = ['张三', '李四', '王五', '赵六']
name.insert(1, '马化腾')
print(name)
for x, y in enumerate(name):
print(x, y)
# 删除数据
# remove:从左到右删除满足条件的第一个元素
name = ['张三', '李四', '王五', '赵六', '张三']
name.remove('张三')
print(name)
# remove不能删除列表中不存在的元素,否则会报错
if '王老五' in name:
name.remove('王老五')
# pop:根据索引值删除元素,pop(索引值)
name = ['张三', '李四', '王五', '赵六', '张三']
name.pop(-1)
print(name)
# del删除
# del根据索引删除元素
name = ['张三', '李四', '王五', '赵六', '张三']
del name[0]
print(f'使用del删除后的列表为:{name}')
name = ['张三', '李四', '王五', '赵六', '张三']
del name[:3]
print(f'使用del切片删除后的列表为:{name}')
# 修改数据:直接根据索引值修改
name = ['张三', '李四', '王五', '赵六']
name[0] = '张三儿'
print(name)
# 查询数据
# 查询指定索引值的数据
print(name[3])
# 查询所有元素
for x, y in enumerate(name):
print(x, y)
# 列表的切片:返回的仍然是列表
list1 = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
print(list1[0:3]) # abc
print(list1[:5]) # abcde
print(list1[2:]) # cdefg
print(list1[::]) # abcdefg
print(list1[::2]) # aceg
# 列表的迭代
list1 = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
for i in list1:
print(i)
# 练习:输出所有张姓人氏,startswith
name = ['张三','李四','张一鸣','马云','张无忌','马化腾']
for x in name:
if x.startswith('张'):
print(x)
# 将张姓人氏存放到列表中:append
list1 = []
for x in name:
if x.startswith('张'):
list1.append(x)
print(list1)
# 列表推导式:在列表中写表达式,但是只能用于逻辑比较简单的语法
list1 = [x for x in name if x.startswith('张')]
print(list1)
# 联系:输出1-100(包含100)以内所有的奇数,要求使用列表推导式
list1 = [y for y in range(1,101) if y % 2 == 1]
print(list1)
list2 = []
for i in range(1,101):
if i % 2 == 1:
list2.append(i)
print(list2)
# 列表的添加:
# 方法一:使用+直接拼接
list1 = [1,2,3,4]
list2 = [7,8,9,10]
list3 = list1 + list2
print(list3)
# 方法二:通过extend扩展
list1.extend(list2)
print(list1)
# 列表的方法
# 转置列表:reverse
list1 = [1,2,3,4,5,6,7,8]
list1.reverse()
print(list1)
# 列表的排序,默认是升序排序
list2 = [1,5,2,7,3,8,4,9,6]
list3 = sorted(list2)
print(list3)
# 设置降序排序 reverse=True
list4 = sorted(list2,reverse=True)
print(list4)
# join拼接
list1 = ['张三','李四','王五']
list2 = '--'.join(list1)
print(list2)
# sum求和
list1 = [1,2,3,4,5,6]
print(sum(list1))
# 列表内元素类型的转换:map(要实现的功能,目标对象)
list1 = ['1','2','3','4','5','6']
list2 = list(map(int,list1))
list2 = sum(list2)
print(list2)
# 清空列表
list1.clear()
print(list1)
# 多维列表
# 一维列表
list1 = [1,2,3]
print(list1[0])
# 二维列表
list2 = [[1,2,3],[4,5,6],[7,8,9]]
print(list2[0][0])
# 三维列表
list3 = [
[
['张三','李四','王五'],
[20,21,22]
],
[
['打篮球','听歌','跑步'],
['健身','LOL','看电影'],
['卡丁车','马拉松','学python']
]
]
print(list3[0][0][2])
# 打印出 'LOL' '学python'
print(list3[1][1][1])
print(list3[1][2][2])