目录
3.1 列表是什么
3.1.1 列表的定义
3.1.2 索引从0开始
3.1.3 使用列表的值
3.1.4 获得列表值的索引
3.2 修改、添加和删除列表元素及对列表元素排序、倒转、切片
3.2.1 修改列表元素及修改二阶列表元素
3.2.2 添加、删除列表元素、计算列表值的数量
3.2.3 对列表元素进行排序、倒转
3.2.4 对列表元素进行切片
first_list = [] # 空列表
second_list = [1, 2, 'potato']
third_list = list(range(1,4))
print(second_list) # [1, 2, 'potato']
print(third_list) # [1, 2, 3]
print(second_list[2]) # potato
print(second_list[2].title()) # Potato
nums = [1, 3, 5, 7]
j = 5
print(nums.index(j)) # 输出:2
print(nums.index(j, 0, 1)) # 出错
# 第二个和第三个参数表示搜索的索引范围
def list_study1():
list1 = [1,2,3,4,5] # 一阶列表,利用索引修改
list1[4] = 10
print(list1) # [1,2,3,4,10]
stu1 = [0]*5 # 定义二阶列表
print(stu1) # [0, 0, 0, 0, 0]
stu2 = [[0]*3]*4 # 4个空列表元素的列表
print(stu2) # [[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]]
# 给列表2第一个元素赋值 66,第五个元素赋值88
stu2[0][0] = 66
stu2[1][1] = 88 # 直接利用索引不行
print(stu2) # [[66, 88, 0], [66, 88, 0], [66, 88, 0], [66, 88, 0]]
print(id(stu2[0][0]), id(stu2[1][0]), id(stu2[2][0])) # 地址相同
# 修改
stu3 = [([0] * 3) for i in range(4)]
stu3[0][0] = 66
stu3[1][1] = 88
print(stu3) # [[66, 0, 0], [0, 88, 0], [0, 0, 0], [0, 0, 0]]
def list_study2():
stu1 = ['1001', '小米', '男', '20']
print('学生:', stu1)
# 1、追加 append() 函数
stu1.append('南昌') # stu1: ['1001', '小米', '男', '20', '南昌']
print('stu1:', stu1)
# 2、计算x出现次数 count(x)
list1 = [1, 2, 3, 4, 1]
print(list1.count(1)) # 2
# 3、追加一个列表 extend()
stu2 = ['1002', '小丽', '女', '19']
stu1.extend(stu2)
print('stu3:', stu1) # stu3: ['1001', '小米', '男', '20', '南昌', '1002', '小丽', '女', '19']
# 4、获取x的位置 index(x)
index = stu1.index('男')
print('男的位置:', index) # 男的位置: 2
# print('男的位置:', stu1.index('男', 3, 5)) # 出现错误:ValueError: '男' is not in list
# 5、插入 insert(x,y) 在x位置插入y
stu1.insert(0, '学生信息')
print('stu5:', stu1) # stu5: ['学生信息', '1001', '小米', '男', '20', '南昌', '1002', '小丽', '女', '19']
# 6、删除 pop(index), remove(x), index位置, x为元素
list1 = [1, 2, 3, 4, 1]
list1.pop(2) # list1.pop()则删除最末尾的元素
print(list1) # [1, 2, 4, 1]
list1.remove(1)
print(list1) # [2, 4, 1], remove只删第一个x
def list_study3():
# 7、倒转 reverse()函数(倒转还可以用切片实现)
stu3 = ['1001', '小米米', '男', '20']
stu3.reverse()
# 或reversed(stu3)
print(stu3) # ['20', '男', '小米', '1001']
# 8、排序函数 sort(key=none, reverse=False),
# 默认只对同一种类型排序,升序,none默认直接比较每个元素,可以自定义
stu3.sort()
print(stu3) # ['1001', '20', '小米米', '男']
stu3.sort(reverse=True)
print(stu3) # ['男', '小米米', '20', '1001']
stu3.sort(key=len) # 按照长度排序
print(stu3) # ['男', '20', '小米米', '1001']
# 自定义排序
stu4 = ['1001', '小米米', '男', 20] # 在这里20为整数
def cmp(x):
if type(x) is not str:
return '0' # 以’0‘的方式进行比较排序,换成’1002‘,就排第二了
else:
return x
stu4.sort(key=cmp)
print(stu4) # [20, '1001', '小米米', '男']
def list_study4():
print('列表其他知识')
# del stu/stu[], stu.clear()
# len(list),max(list), min(list)
# +, * , in 等符号
if __name__ == "__main__":
# list_study1() # 定义列表
list_study2() # 添加、删除列表元素、计算列表值的数量
list_study3() # 对列表进行排序、倒转
# list_study4() # 其他知识
# 切片格式:列表名[start:end:步长]
list1 = [1,2,3,4,5,6,7,8]
list2 = list1[0:7:2] # 正着索引是0-7
print(list2) # 输出:[1, 3, 5, 7]
list3 = list1[::-1] # 切片实现列表倒转
print(list3) # [8, 7, 6, 5, 4, 3, 2, 1]
print(list1[0:7:-1]) # 输出:[]
# 步长为负数,start和end也只能为负数,逆着切,正数就为空
list4 = list1[-1:-8:-2] #逆着索引是-1-8
print(list4) # [8, 6, 4, 2]
本人新手,若有错误,欢迎指正;若有疑问,欢迎讨论。若文章对你有用,点个小赞鼓励一下,谢谢,一起加油吧!