Python 基础 - List

  • 特点:

    • 可变性:列表是可变对象,所有修改操作都直接在原列表上进行
    • 有序性:列表保持元素的插入顺序
    • 异构性:可以存储不同类型的数据
    • 可迭代:支持for循环遍历
    • 支持嵌套:可以在列表中嵌套其他列表,形成多维结构

切片和索引

  • 索引

    list = ["张无忌", "赵敏", "成昆", "金毛狮王", "胡辣汤"]
    print(list[0])  # 张无忌
    print(list[4])  # 胡辣汤
    
  • 切片

    list = ["马化腾","马云","任正非","雷政军"]
    print(list[0:3])    # ['马化腾', '马云', '任正非']
    print(list[:3])     # ['马化腾', '马云', '任正非']
    
    print(list[1::2])   # ['马云', '雷政军']
    print(list[2::-1])  # ['任正非', '马云', '马化腾']
    
    print(list[-1:-4:-2])   # ['雷政军', '马云']
    

增加操作

  • append() 添加新的字符串到列表最后面

    list = ["马化腾","马云","任正非","雷政军"]
    list.append("周杰伦")
    print(list)    # ['马化腾', '马云', '任正非', '雷政军', '周杰伦']
    
    # 练习
    list = []
    while True:
        content = input("请输入你要录入学生的学号,输入Q即可退出")
        if content.upper() == 'Q':
            break
        list.append(content)
    print(list)
    
  • insert() 在索引的位置插入,插入位置后面的元素全部往后移一位

    list = ["马化腾","马云","任正非","雷政军"]
    list.insert(1, "周杰伦")
    print(list) # ['马化腾', '周杰伦', '马云', '任正非', '雷政军']
    
  • extend() 迭代添加(新增),可添加多个元素

    list = ["马化腾","马云"]
    list.extend(["周杰伦","任正非","雷政军"])
    print(list) # ['马化腾', '马云', '周杰伦', '任正非', '雷政军']
    
  • 切片增加

    list = ["马化腾","马云","任正非","雷政军"]
    list[1:1] = ["周杰伦"]
    print(list)	# ['马化腾', '周杰伦', '马云', '任正非', '雷政军']
    

删除操作

  • pop() 根据索引删除元素

    #默认删除list最后一个元素
    l = ["马化腾","马云","任正非","雷政军"]
    deleted = l.pop()
    print(l) # ['马化腾', '马云', '任正非']
    print("被删除的:",deleted)  # 被删除的: 雷政军
    
    el = l.pop(0)
    print("这一次被删除的:",el)	# 这一次被删除的: 马化腾
    print(l)	# ['马云', '任正非']
    
  • remove() 删除指定的元素

    l = ["马化腾","马云","任正非","雷政军"]
    l.remove("马云")
    print(l)	# ['马化腾', '任正非', '雷政军']
    #删除不存在的元素,就会报错
    
  • clear() 清空list

    l = ["马化腾","马云","任正非","雷政军"]
    l.clear()
    print(l)  	# []
    
  • del方法 切片删除

    l = ["马化腾","马云","任正非","雷政军"]
    del lt[1:3]
    print(l)     # ['马化腾', '雷政军']
    

修改操作

  • 切片修改

    # 索引切片修改
    l = ["马化腾","马云","任正非","雷政军"]
    l[1] = "周杰伦"
    print(l)	#['马化腾', '周杰伦', '任正非', '雷政军']
    
    l = ["马化腾","马云","任正非","雷政军"]
    l[1:3] = ["周杰伦"]
    print(l)	#['马化腾', '周杰伦', '雷政军']
    
    # 切片超过元素数量的话,后面的元素全部删除
    l = ["马化腾","马云","任正非","雷政军"]
    l[1:4] = ["周杰伦"]
    print(l)	#['马化腾', '周杰伦']
    
     #步长不是一的话,要注意元素个数
    l1 = ["马化腾","马云","任正非","雷政军"]
    l1[2:3:2] = ["周杰伦"]
    print(l1) #['马化腾', '马云', '周杰伦', '雷政军']
    
    l2 = ["马化腾","马云","任正非","雷政军"]
    l2[0:3:4] = ["周杰伦"]
    print(l2) #['周杰伦', '马云', '任正非', '雷政军']
    

查询操作

  • for循环 通过遍历查询(list是一个可迭代对象)

    l = ["马化腾","马云","任正非","雷政军"]
    for i in l:
        print(i)
    
    # for i in range(4):
    for i in range(len(l)):
        print(i,l[i])
    # 输出;
    0 马化腾
    1 马云
    2 任正非
    3 雷政军
    
  • 【例】查询和修改

    # 练习,在列表中找到姓王的. 然后把姓王的名字全部改成"帅哥"
    lst = ["王重阳", "谢鞋倪", "刘爸爸", "王小二"]
    # 必须要有索引, 还要有元素
    for i in range(len(lst)):
        item = lst[i]
        if item.startswith("王"):  # 判断是否姓王,即list元素是否以王开头
            lst[i] = "帅哥" # 修改
    print(lst)  # ['帅哥', '谢鞋倪', '刘爸爸', '帅哥']
    

计算元素出现次数

  • count() 计算元素数量

    lst = ["王小二", "谢鞋倪", "刘爸爸", "王小二"]
    c = lst.count("王小二")
    print(c)    # 2
    

排序

  • sort() 默认升序

    lst = [77, 1, 33, 11, 22]
    lst.sort()
    print(lst)  #[1, 11, 22, 33, 77]
    lst.sort(reverse=True)	# 降序
    print(lst)  #[77, 33, 22, 11, 1]
    
  • reverse() 翻转,把原本的顺序颠倒

    lst = ["王小二", "谢鞋倪", "王小二","刘爸爸" ]
    lst.reverse()
    print(lst)  #['刘爸爸', '王小二', '谢鞋倪', '王小二']
    

嵌套

在列表中嵌套另外一个列表

  • 嵌套列表

    lst = ["谢广坤", "刘能", ["雪碧", ["王思聪", "王剑林", "马云"], "可口可乐", 100, "芬达"], "长跪"]
    # 一层一层的查看
    print(lst[2][1][2])  # 马云
    
    # 练习
    # 1.把王剑林中的"林"字改成"鳞"
    lst[2][1][1] = lst[2][1][1].replace("林", "鳞")  # 王剑鳞
    print(lst)
    # 2.把100, 乘以10 放回去
    lst[2][3] *= 10
    print(lst)
    # 3.把可口可乐中的乐打印出来
    print(lst[2][2][3])
    

小结

方法/函数功能描述参数说明返回值
list[index] 索引访问通过索引访问列表元素index: 元素位置(0开始)对应位置的元素
list[startstep] 切片操作获取列表的子集start: 开始位置
end: 结束位置
step: 步长
新的列表片段
append(element)在列表末尾添加新元素element: 要添加的元素无(直接修改原列表)
insert(index, element)在指定索引位置插入元素index: 插入位置
element: 要插入的元素
无(直接修改原列表)
extend(iterable)将可迭代对象的元素添加到列表末尾iterable: 可迭代对象(如列表)无(直接修改原列表)
pop([index])删除并返回指定索引位置的元素index: 要删除的元素位置(可选,默认最后一个)被删除的元素
remove(element)删除第一个匹配的指定元素element: 要删除的元素值无(直接修改原列表)
clear()清空列表中的所有元素无参数无(直接修改原列表)
del list[index]
del list[start:end]
删除指定索引或切片范围的元素索引或切片范围无(直接修改原列表)
list[index] = value 索引修改修改指定索引位置的元素index: 要修改的位置
value: 新值
无(直接修改原列表)
list[start:end] = iterable 切片修改修改切片范围的元素切片范围和新的可迭代对象无(直接修改原列表)
count(element)统计指定元素在列表中出现的次数element: 要统计的元素出现次数(整数)
sort([reverse=False])对列表进行排序reverse: 是否降序(默认False升序)无(直接修改原列表)
reverse()反转列表中元素的顺序无参数无(直接修改原列表)
len(list)获取列表长度(元素个数)列表对象列表长度(整数)
for循环遍历遍历列表中的所有元素--
list[i][j] 嵌套访问访问嵌套列表中的元素多层索引嵌套中的元素
posted @ 2025-11-22 21:22  stars-AI  阅读(5)  评论(0)    收藏  举报  来源