谈谈我所知道的列表(二)

列表的通用操作

  • 加号

    • 这里提到的+是列表之间的操作,不能将列表和其他类型的数据结构或类型来进行操作;加号本质上是一种拼接,减号和除号不能用于列表之间的操作。
    • 语法:[ ] + [ ]
    list_1 = [1, 2, 3] + [4, 5, 6]
    结果:list_1 = [1, 2, 3, 4, 5, 6]
    
    list_1 = [78, 99, 3]
    lst = [1, 2, 3] + list_1[2]
    结果:lst = [1, 2, 3] + list_1[2]
    TypeError: can only concatenate list (not "int") to list
    
    lst = [1, 2, 3] + '5'
    结果:lst = [1, 2, 3] + '5'
    TypeError: can only concatenate list (not "str") to list
    
  • 乘号

    • 这里提到的*是列表与整型数字之间的操作,不能用于其他任何状况的操作;称号本质上是指定列表中的元素按照顺序重复指定的次数,整型数字就是指定的次数。
    • 语法: [ ] * int(number)
    list_1 = [1, 2, 3] * 2
    结果:list_1 = [1, 2, 3, 1, 2, 3]
    
    list_1 = [1, 2, 3] * [4, 5, 6]
    结果:TypeError: can't multiply sequence by non-int of type 'list'
    
  • in 和 not in

    • in用来检测元素是否存在于列表中,是返回True,否返回False;not in用来检测元素是否不存在于列表中,是返回True,否返回False
    • 语法:元素 in 列表 ; 元素 not in 列表
    list_1 = ['', None, False, 0.0, 0]
    s = None in list_1
    n = '' not in list_1
    print(s)
    结果:True
    print(n)
    结果:False
    
  • len()

    • len() 函数可以用来返回列表中元素的个数
    • len() 函数返回的是一个int类型的数据
    • 语法:len(list)
    list_1 = ['', None, False, 0.0, 0, []]
    print(type(len(list_1)), len(list_1))
    结果:<class 'int'> 6
    
  • max() 和 min()

    • max()函数用来获取列表中元素的最大值;min()函数用来获取列表中元素的最小值
    • 注意:这两个函数本质上是进行一种比较关系,虽然在列表中有一套独特的比较方式,但是不同类型之间不能比较的还是不能比较的
    • 语法:max(list) min(list)
    list_1 = ['文子', '杨朱', '墨子', '老子', '孔子']
    print(max(list_1), min(list_1))
    结果:老子 墨子
    
    list_2 = ['', None, False, 0.0, 0, []]
    print(max(list_2), min(list_2))
    结果:print(max(list_2), min(list_2))
    TypeError: '>' not supported between instances of 'NoneType' and 'str'
    
  • index()

    • index() 获取指定元素在序列中的位置,第一个参数——查找对象 第二个参数——起始位置 第三个参数——终止位置
    • 这个方法只找该指定元素在指定切片内的第一个位置,是顺序查找,找到一个就停止;list_1.index(‘杨朱’, 2, 8) 起始位置和终止位置之间是英文逗号不能是英文冒号
    • 语法:list.index(指定元素, 起始位置, 终止位置)
    list_1 = ['文子', '杨朱', '墨子', '老子', '杨朱', '孔子']
    print(list_1.index('杨朱'))
    结果:1
    print(list_1.index('杨朱', 2, 8))
    结果:4
    
  • count()

    • count() 获取指定元素在序列中出现的次数
    • count()方法不能指定区间
    • 语法:list.count(指定元素)
    list_1 = ['文子', '杨朱', '墨子', '老子', '杨朱', '孔子']
    print(list_1.count('杨朱'))
    结果:2
    

  • 浅谈函数和方法的区别:
    • 函数的形式xxx(对象)
    • 方法的形式对象.xxx(指定内容)

在这里插入图片描述

修改列表

  • 索引修改法

    • 通过下标索引值来修改元素
    • 下标索引值不能超出范围,不能删除,只能修改
    • 语法:list[2] = ‘修改内容’
    list_1 = ['', None, False, 0.0, 0]
    list_1[0] = '文子'
    print(list_1)
    结果:['文子', None, False, 0.0, 0]
    list_1[3] = []
    print(list_1)
    结果:['文子', None, False, [], 0]
    
  • del关键字

    • del关键字还是需要通过索引值来删除元素
    • del 删除之后被删除的元素后面的元素自动向前顺移一位
    • 语法:del list[2]
    list_1 = ['文子', None, False, 0.0, 0]
    del list_1[3]
    print(list_1)
    结果:['文子', None, False, 0]
    
  • 切片+步长

    • 切片+步长本质上还是通过索引值来修改列表
    • 切片的步长为1时不需要考虑切片中元素的个数和修改内容中元素的个数的关系,被修改的部分会直接被修改成修改内容;切片的步长不为一时,切片中元素的个数一定要和修改内容中元素的个数相等;步长不能为0
    • 语法:list[2:5:2] = ‘修改内容’, ‘修改内容’
    list_1 = ['文子', None, False, 0.0, 0]
    list_1[1:5] = '杨朱', '墨子', '老子', '杨朱', '孔子'
    print(list_1)
    结果:['文子', '杨朱', '墨子', '老子', '杨朱', '孔子']
    
    list_1[1:5:2] = '杨朱', '墨子', '老子', '杨朱', '孔子'
    print(list_1)
    结果:list_1[1:5:2] = '杨朱', '墨子', '老子', '杨朱', '孔子'
    ValueError: attempt to assign sequence of size 5 to extended slice of size 2
    
    list_1[1:5:2] = '公孙龙子', '尉缭子'
    print(list_1)
    结果:['文子', '公孙龙子', '墨子', '尉缭子', '杨朱', '孔子']
    

在这里插入图片描述

列表的方法

  • append()

    • append()方法可以在列表的末尾添加一个元素,典型的例子就是贪吃蛇
    • append()方法只接受一个参数,不能没有参数,也不能多余一个参数
    • 语法:list.append(元素)
    list_1 = ['文子', '公孙龙子', '墨子']
    list_1.append('荀子')
    print(list_1)
    结果:['文子', '公孙龙子', '墨子', '荀子']
    
    list_1.append()
    print(list_1)
    结果:list_1.append()
    TypeError: append() takes exactly one argument (0 given)
    
  • insert()

    • insert()方法可以向指定的位置插入一个元素
    • insert()方法只接受两个参数,不接受两个以下或以上的元素
    • 语法:list.insert(位置, 元素)
    list_1 = ['文子', '公孙龙子', '墨子']
    list_1.insert(1, 'I love what I said.')
    print(list_1)
    结果:['文子', 'I love what I said.', '公孙龙子', '墨子']
    
    list_1.insert('I love what I said.')
    print(list_1)
    结果:list_1.insert('I love what I said.')
    TypeError: insert() takes exactly 2 arguments (1 given)
    
  • extend()

    • extend()可以扩展一个序列,但是它是以一个序列为参数的
    • extend()方法接受且只接受一个参数
    • 语法:list.extend(list)
    list_1 = ['remove', 'sad', 'crazy']
    list_2 = [(1, 2, 3), None, True]
    list_1.extend(list_2)
    print(list_1)
    结果:['remove', 'sad', 'crazy', (1, 2, 3), None, True]
    
    extend(self, iterable)
    
  • clear()

    • clear()可以用来清空序列
    • clear()方法不接受参数
    • 语法:list.clear()
    list_2 = [(1, 2, 3), None, True]
    list_2.clear()
    print(list_2)
    结果:[]
    
    clear(self)
    
  • pop()

    • pop()可以删除指定位置的元素,有返回值
    • 不传递索引值,默认删除最后一个元素
    • 语法:list.pop(索引值)
    list_2 = [(1, 2, 3), None, True, 0.0]
    a = list_2.pop(2)
    print(list_2, a)
    结果:[(1, 2, 3), None, 0.0] True
    a = list_2.pop()
    print(list_2, a)
    结果:[(1, 2, 3), None] 0.0
    
    pop(self, index=None)
    
  • remove()

    • remove()方法可以通过指定值的方式来删除元素,无返回值
    • 指定值不能为空缺
    • 语法:list.remove(指定值)
    list_2 = [(1, 2, 3), None, True, 0.0]
    list_2.remove(True)
    print(list_2)
    结果:[(1, 2, 3), None, 0.0]
    
    remove(self, value)
    
    • reverse()
    • reverse()方法可以用来反转列表
    • reverse()方法没有不接受参数
    • 语法:list.reverse()
    list_2 = [(1, 2, 3), None, True, 0.0]
    list_2.reverse()
    print(list_2)
    结果:[0.0, True, None, (1, 2, 3)]
    
    reverse(self)
    
  • sort()

    • sort()方法用来帮助列表排序,默认是升序
    • 默认的参数是reverse=False;可以通过给予reverse=True的参数来实现降序排列
    • 语法:list.sort()
    list_2 = [(1, 2, 3), None, True, 0.0]
    list_2.sort()
    print(list_2)
    结果:list_2.sort()
    TypeError: '<' not supported between instances of 'NoneType' and 'tuple'
    
    list_3 = ['文子', '公孙龙子', '墨子', '尉缭子', '杨朱', '孔子']
    list_3.sort()
    print(list_3)
    结果:['公孙龙子', '墨子', '孔子', '尉缭子', '文子', '杨朱']
    list_3.sort(reverse=True)
    print(list_3)
    结果:['杨朱', '文子', '尉缭子', '孔子', '墨子', '公孙龙子']
    
    sort(self, key=None, reverse=False)
    

在这里插入图片描述

遍历列表

  • while循环遍历列表的机制

    • 通过while循环将列表中的元素一个个输出
    list_2 = [(1, 2, 3), None, True, 0.0]
    i = 0
    while i < len(list_2):
    	print(list_2[i])
    	i += 1
    结果:(1, 2, 3)
    None
    True
    0.0
    
  • for循环遍历列表的机制

    • for循环中的序列中有多少个元素就会循环多少次,每循环一次就会将一个元素赋予变量,所以我们可以通过变量来遍历列表中的元素
    • for循环语法:
    for 变量 in 序列(遍历的规则):
        代码块
    
    a = [(1, 2, 3), None, True, 0.0]
    for j in a:
    	print(j)
    结果:(1, 2, 3)
    None
    True
    0.0
    
  • range()函数的特点以及其与for循环的配合使用

    • 语法:range(start, stop, step)
    • start 开始 默认是从0开始 例如 range(5)等价于range(0, 5)
    • stop 结束 不包括结束 例如 range(0, 5)结果是[0, 1, 2, 3, 4]
    • step 步长 默认为1 例如 range(5)等价于range(0, 5)等价于range(0, 5, 1)
    • 步长只能为正整数和负整数
    list(range(0, 10))
    结果:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    
    for i in range(0, 9, 2):
        print(i)
    结果:0
    2
    4
    6
    8
    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值