列表的用法总结

 
列表
列表的元素可以任意操作,更删改查,是操作起来很方便的一种数据类型
是以一对中括号括起来的数据,值之间通过逗号隔开
列表里的数据项不需要具有相同的数据类型,不同数据类型依然可以进行存储

1.元组强制转换为列表
    tt = (1,2,3)
    print(list(tt))#理解为数据类型的转换,比如字符串里的整数强制转换为整型
    ======>[1, 2, 3]
2.列表的创建
    list1 = [1,3,'x','y'] #创建一个混和类型的列表
    list2 = [] #创建一个空列表

3.列表元素的增加
    3.1 append方法,向一个列表中添加一个对象,可以是一个元素,可以是列表、元组等
        list1 = [1,2,'x']
        list1.append('Add') #在列表的最后加上元素
        print(list1)
        ======>[1, 2, 'x', 'Add']
        append 方法就是简单的将一个对象置于列表的后面

    3.2 insert方法,指定位置添加数据,对已有数据的位置就是修改,对没有数据的索引,就是新增
        list1 = [1,2,'x']
        list1.insert(3,'xx') #新增数据
        list1.insert(1,'xx') #修改数据

    3.3 extend将一个列表附加到另一个列表上
        list1 = [1,2,'x']
        list2 = ['add']
        list1.
        list1.extend(list2) #将一个列表附加到另一个列表,元素不去重
        =====>[1, 2, 'x', 'A', 'd', 'd'] #因为extend只接收list,所以将其拆分
        而extend方法只能接收list,且把这个list中的每个元素添加到原list中。

    3.4 + 加号,将两个list相加,会返回到一个新的list对象,注意与前三种的区别
        list1 = [1,2,'x']
        list2 = ['add']
        list3 = list1 + list2

        前面三种方法(append, extend, insert)可对列表增加元素的操作,他们没有返回值,是直接修改了原数据对象。
        注意:将两个list相加,需要创建新的list对象,从而需要消耗额外的内存,特别是当list较大时,尽量不要使用“+”
        来添加list,而应该尽可能使用Listappend()方法。
4.查询
    通过索引、切片进行查看
    list1[1::1]
    list1[-1::-1] #从右向左,反向输出
    list2[0:3] #从左到右,正向输出
    print(list1[1])
5.修改
    通过索引、切片进行修改
    list1[1]='a' #通过索引,修改某个元素
    list1[0:2]=['a','b'] #通过切片,修改多个元素
    list1[0:2]=['a'] #通过切片修改多个元素时,若没有足够的元素值进行赋值,没有值的就会被删除
6.删除
    6.1 del 删除整个对象
            del list1 #删除这个对象
            del list1[0] #删除列表中索引所对应的对象
            del list1[0:2] #删除列表中切片所对应的多个对象
    6.2 remove删除某个对象,无返回值
            list1.remove(list1[0]) #不能一次删除多个,即不能通过切片进行删除
            print(list1)
    6.3 clear清空列表中元素,列表显示为空列表
            list1.clear()
    6.4 pop 删除索引所对应的元素,并返回被删除的元素,移除列表中的一个元素(默认最后一个元素)
            list1.pop(1) #参数为索引,不是对象
            a = list1.pop(1) #返回被删除的元素,有时候需要对删除的元素进行特殊处理,即可以使用pop方法

            list1.pop()
            print(list1) #若没有给出索引值,默认删除最后一个元素

7.count 返回元素个数
    list1.count('x') #参数为一个元素对象值,返回该元素在列表中出现的个数或次数

8.index返回索引
    k = list1.index('x',2,4) #指定查找索引的位置为2-4,找到第一个元素为'x',的索引值
    k2 = list1.index('x') # 指定查找的元素,返回索引值
    k = list1.index('x',3) #没有指定结束索引,表示从指定的开始索引一直到列表的最后一个元素
    如果没有找到,程序报错,返回:'x' is not in list

    出现的一个错误:
    k = list1.index('x',start=3)
    程序报错:
    k = list1.index('x',start=3)
    TypeError: index() takes no keyword arguments
    表示参数写错了,不能写带关键字的参数
9.max 返回列表中元素的最大值
    当列表元素为混合元素,即有整型、字符串时,使用max会报错
        list1 = [1,2,'x',2,3,'x']
        k = max(list1)
        TypeError: '>' not supported between instances of 'str' and 'int'
    应该是只能对同类型的数据进行比较
        list2 = [1,2,3,2]
        list3 = ['k','a']
        k = max(list2)
        k = max(list3)

10.min返回列表中元素的最小值,与max 的用法相同

11.sort 排序,默认从小到大,如果想要从大到小,就需要加上reverse = True
    1. 由于sort没有返回值,不能直接进行输出print(list1.sort())
    2. sort排序后,是对原来列表的更新顺序,所以本身的列表发生了改变
        list2.sort()
        print(list2)#输出的时候,就是从小到大的顺序输出

        list2.sort(reverse=True)
        print(list2) #输出的时候,就是从大到小的顺序进行输出

        list3 = ['a','X','B']
        list3.sort(reverse=True)
        print(list3)
        =====>['a', 'X', 'B']
        是按ascii码的大小进行排序的

    3.也不能多种数据类型进行排序,比如列表中有字符、有整型,这时候进行sort就会报错
        '<' not supported between instances of 'str' and 'int'

    4.sorted 有返回值,可以直接进行输出;本身列表的顺序没有被改变
        print(sorted(list2))

12. 判断某个元素是否存在于列表中
    1.通过判断索引是否存在,不过如果不存在索引,程序报异常,不建议使用
        k = list2.index(7)
        print(k)
    2.通过判断count是否为0
        k = list2.count(7)
        print(k)
    3.通过in进行判断
     3 in list1   #返回布尔值
     print( 6 in list2)

13.len()判断列表的长度,即元素的个数
    len(list1)
    print(len(list2))

14.reverse 列表反转,没有返回值,列表本身的顺序进行改变
    list2.reverse()
    print(list2)

15.sum 列表中元素的和
    list2 = [1,2,3,2,6]
    print(sum(list2)) #必须保证里面的元素的类型都是int,不能有其他类型,不能有二维列表

16.一维遍历
    for i in list1: #第一种 循环输出
        print(i)

    for i,v in enumerate(list2): #第二种 使用内置函数,并输出序号
        print(i,v)

    for i in range(len(list2)): #第三种,参考索引进行输出
        print(list2[i])

    for i in iter(list2): #第四种,使用迭代器进行输出
    print(i)

17.二维遍历
    list1 = ['2',('3','5'),'1',['x','y','z']]
    for i in range(len(list1)):
        for j in range(len(list1[i])):#当列表中元素为非int型时,可以这样进行
            print(list1[i][j])

    #对含有整型的列表进行上一种方法进行遍历时,报错TypeError: object of type 'int' has no len()
    list1 = [1,2,3,[2,3,'x'],[4,5,6]]
    for i in list1:
        if type(i) != type(2): # type类型返回的是个对象,所以用个整型的对象去做判断
            for j in i:
                print(j)
        else:
            print(i)


18.遍历多个列表
list1 = ['1', '1']
list2 = ['A','B']

for x in list1, list2: #对列表系列依次遍历
    reslut = x[:] #接收一个列表,最后的列表覆盖前面的列表
print(reslut)

for x in list1, list2:
    reslut2 = x[:] #接收一个列表,就输出一个列表
    print(reslut2)

19.去重
    set(list2)将重复的元素进行去重


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值