Python列表的方法(遍历,增删改查和排序)

 

一、创建列表

    lst = [1, 2.34, 'hello', False]
    # 查看列表中的数据
    print(lst)
    # 查看列表的数据类型
    print(type(lst))  # <class 'list'>

查看数据类型的函数(type) 

显示结果如下:
 
二.遍历列表

列表是有序的,我们可以用之前学过的for循环遍历它,然后输出列表中的每一个值。

    j=['hello',1,2,3]
    for i in lst:
        print(i)

输出结果如下:

hello

1

2

3

 

三.列表的增删查改

1.列表的增
(1)append  追加

在列表后面追加元素#:
  lst = ['悟空', '八戒', '唐三藏']     
  lst.append('沙僧')  # 将数据追加到列表的后面
  print(s)

因为是在列表的末尾增加,所以增加的内容肯定在最末尾!
输出如下:

['悟空', '八戒', '唐三藏','沙僧']

(2)insert 插入

可以在列表的任意位置插入类型。

分为1:正插

    lst = ['悟空', '八戒', '唐三藏']
     
    lst.insert(1, '白龙马')  # 指定索引位置添加元素。
    print(lst)

悟空的索引是0,因为我们插入的位置是1,所以就插在悟空的后面。

lst = ['悟空', '八戒', '唐三藏']

  分为1:  :倒插

如果我们的列表需要在后边插入等,我们可以使insert的第一个位置值变成负数,注意,倒插的起始值是-1
lst=['悟空','八戒','唐三藏']
lst.insert(-1,'白龙马')# 指定索引位置添加元素。
print(lst)

输出结果如下:
['悟空', '八戒', '白龙马', '唐三藏']

(3)+号

没错,就是+,它的作用和在字符串中是一样的连接两个列表的尾和首

lst1=['悟空','八戒','唐三藏']
lst2=['宋江', '李逵', '悟空']
lst3 = lst1 + lst2
# 列表之间可以相加,将所有的内容放到一个新的列表中,并且不会自动去重
print(lst3)

lst1我们放在前面,而lst2放在后面,所以合并的内容lst1在前

结果如下:
['悟空', '八戒', '唐三藏', '宋江', '李逵', '悟空']

 
(4)extend继承      (内容必须是可迭代的!)

其实如果是两个列表合并用+号完全没有问题,extend的功能和+一样的。

但是,当我们想要合并一个列表,和一个不是列表但是可迭代的数据类型时,我们就需要用到它,结果返回一个列表

    lst = ['悟空', '八戒', '唐三藏']
    lst.extend((1,2,3))
    print(lst)

由上图可知,我们合并的是一个列表,还有一个元组(是可迭代的),python会把元组中的每一个数都拿出来,然后放在列表中。然后得到一个新的列表。

结果如下:

['悟空', '八戒', '唐三藏', 1, 2, 3]

 

2.列表的删

(1)pop() 弹出

关于这个函数,如果我们不在括号中增加参数,它会默认弹出列表的最后一个值并返回。

如果在括号中增加参数的话,就会弹出内容的值并返回

如果没有找到就会报错

1.我们括号中添加位置。

lst = ['悟空', '八戒', '唐三藏']
popvalue=lst.pop(0) 
# 指定索引删除数据
print(popvalue)
print(lst)
结果如下:弹出了第一个值

悟空
['八戒', '唐三藏']
#如果索引不存在则报错
popvalue=lst.pop(4) #  IndexError: pop index out of range


2.我们不在括号中添加内容:

    lst = ['悟空', '八戒', '唐三藏']
    popvalue=lst.pop()# 它就会默认弹出最后一个
    print(popvalue)
输出如下:唐三藏

 

(2)remove 移除


和pop的括号不一样,POP括号中需要添加的是位置(下标)

remove的括号中是添加需要移除的内容

    lst = ['悟空', '八戒', '唐三藏']
    lst.remove('八戒')  # 根据内容删除
    print(lst)

输出如下:

https://img2.mukewang.com/5c42eab500014f8a02330063.jpg


(3)clear清空列表

clear的功能十分简单,把一个有内容的列表变成空的列表

     
    lst = ['悟空', '八戒', '唐三藏']
     
    lst.clear()  # 清除所有内容,变成空列表[]
    print(lst)

注意:clear的括号里面不能有任何内容的!
 

输出如下:

https://img.mukewang.com/5c42ea9500017c2301570051.jpg


啥都没了

(4)del删除列表

这个比clear更狠!clear是删除列表里面的内容,留下一个空列表,del是直接全部删除,属于毁尸灭迹级别的

    lst = ['悟空', '八戒', '唐三藏']
    del lst  # 删除列表
    print(lst)

因为直接全部给你删除了,所以你在查找它,系统就会找不到。

3.列表的修改和查找
(1)列表的修改-索引

使用索引即可修改

    lst = ['悟空', '八戒', '唐三藏']
    lst[0] = '猴哥'  # 通过索引来修改内容
    print(lst)

修改后的列表显示如下

      ['猴哥', '八戒', '唐三藏']

切片也可以

lst = ['悟空', '八戒', '唐三藏']
lst[0:2] = ['猴哥'] # 通过索引来修改内容
print(lst)

 修改后的列表显示如下

['猴哥', '唐三藏']


(2)index()-查找

和之前的字符串是一样的,找到会返回下标,如果没有找到会报错!

    lst = ['悟空', '八戒', '唐三藏', '悟空']
    index = lst.index('悟空')  # 根据内容返回索引值
    print(index)

显示结果如下:

https://img.mukewang.com/5c42ea770001696f00950035.jpg

 

(3)count()-计数

    lst = ['悟空', '八戒', '唐三藏', '悟空']
    a = lst.count('悟空')
    print(a)

结果显示如下:

https://img.mukewang.com/5c42ea6a0001a12902330117.jpg

 

(4)切片

有时候,当我们需要列表中的一部分时,和字符串的方法一样,我们可以使用切片来实现。

格式:列表[起始:结尾(取不到):步长]

    lst = ['a', 'b', 'c', 'd', 'e']
    ret = lst[0:4:2]
    print(ret)
    print(lst)

结果如下:

https://img1.mukewang.com/5c42ea5d0001dd1003400070.jpg

(5) for 循环 遍历列表

4.列表的排序

排序规则:按照列表中的元素的Ascll码进行排序。详细可查询ASCLL码表
(1)sort 正序

    lst = ['tom', 'jerry', 'carl', 'zs', 'ls']
    print(lst)
    lst.sort()  # 升序排序
    print(lst)

结果如下:

https://img3.mukewang.com/5c42ea4f0001077d04280081.jpg

 

(2)reverse 降序,翻转

下面是降序:(按照ascll码从大到小排列)

    lst = ['tom', 'jerry', 'carl', 'zs', 'ls']
     
    lst.sort(reverse=True)  # 降序排序
    print(lst)

结果如下

https://img3.mukewang.com/5c42ea420001e72504460067.jpg

翻转,把列表翻转过来,从头到尾排(只是翻转,不排序)


    lst = ['tom', 'jerry', 'carl', 'zs', 'ls']
    print(lst)
    ret = lst.reverse()
    print(lst)

结果如下:
https://img4.mukewang.com/5c42ea390001b69c03710051.jpg
--------------------- 

原文作者:staryer-chen 

原文链接:https://blog.csdn.net/weixin_44239343/article/details/85865486

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值