list(一)列表的索引、增删改和排序:append()/extend()/pop()/remove()/sort()、sorted()、reserve()、len()

列表简介

1.1列表及列表索引

  • 列表是由一系列按特定顺序排列的元素组成。可以将任何东西加入列表中,其中的元素之间没有任何关系。

  • 在Python中,用方括号 [] 表示列表,并用逗号( , )分隔其中的元素

  • Python中,列表元素的索引,从左往右从0开始递增,从右往左则从-1开始递减。

    letters = ['a','b','c','d','e','f']
    print(letters[0])
    print(letters[3])
    print(letters[-1])
    print(letters[-2])
    '''输出结果分别为:
    a
    d
    f
    e'''
    
  • 使用列表中的值:

    bicycles = ['trek','cannondale','redline','specialized']
    message = f"My first bicycle was a {bicycles[0].title()}."
    print(message)
    '''输出:
    My first bicycle was a Trek.'''
    

1.2修改、添加和删除元素

方法描述
list.append(obj)在列表末尾添加新的元素
list.extend(seq)在列表末尾一次性追加另一序列的多个值。
insert(index,obj)可以在列表的任意位置添加新的元素
del语句:del list[index]删除任意位置的元素,事先需要知道所要删除元素的位置
pop(index)删除任意位置的元素,事先需要知道所要删除元素的位置
pop()删除列表末尾的元素
remove(obj)根据值删除元素:不知道所要删除元素的位置,但知道所要删除元素的值。remove()只删除第一个指定的值。如果要删除的值在列表中出现多次,就需要使用循环来确保每个值都被删除。

(1)修改列表元素

  • 修改列表元素可以通过指定列表名和需要修改的元素的索引,对其赋予一个新的值。

    bicycles = ['trek','cannondale','redline']
    bicycles[1] = 'specialized'
    print(bicycles)
    '''输出结果:
    ['trek', 'specialized', 'redline']'''
    

(2)添加列表元素

  • 添加到列表末尾:append() 注意与extend()区分

    • append()方法用于在列表末尾添加新的元素。
    • extend()函数用于在列表末尾一次性追加另一序列的多个值。
  • 添加到任何位置:insert(索引,添加的内容)

    # 添加到列表末尾:appen() vs. extend()
    letters = ['a','b','c','d','e']
    nums = ['11','22','33','66']
    nums.extend(letters)
    letters.append('F')
    print(nums)
    print(letters)
    '''输出结果:
    ['11', '22', '33', '66', 'a', 'b', 'c', 'd', 'e']
    ['a', 'b', 'c', 'd', 'e', 'F']
    '''
    # 添加到列表的任意位置:insert()
    lett = ['a','b','c','d','e','f']
    lett.insert(2,'H')
    print(lett)
    '''输出结果:
    ['a', 'b', 'H', 'c', 'd', 'e', 'f']'''
    

(3)删除列表元素

  • 删除任意位置的元素:事先知道所要删除元素的位置

    • 使用 del 语句
    • pop(索引)
    • 注意:使用del 删除元素后,将无法再访问;pop()删除后可以访问
  • 删除列表末尾的元素:

    • pop()
  • 根据值删除元素:不知道所要删除元素的位置,但知道所要删除元素的值

    • remove()
    • 注意:remove()只删除第一个指定的值。如果要删除的值在列表中出现多次,就需要使用循环来确保每个值都被删除。
    # 删除任意位置的列表元素: del语句;pop(索引)
    letters = ['a','b','c','d','e']
    nums = ['1','2','3','4','5']
    del letters[1]
    print(letters)
    number_3 = nums.pop(2)
    print(number_3)
    print(nums)
    '''输出结果:
    ['a', 'c', 'd', 'e']
    3
    ['1', '2', '4', '5']
    '''
    # 删除列表末尾元素:pop()
    nums = ['1','2','3','4','5']
    last = nums.pop()
    print(last)
    print(nums)
    '''输出结果:
    5
    ['1', '2', '3', '4']
    '''
    # 根据值删除元素:remove()
    letters = ['a','b','c','d','e']
    letters.remove('d')
    print(letters)
    '''输出结果:
    ['a', 'b', 'c', 'e']
    '''
    

1.3组织列表:sort()、sorted()、reverse()、len()

方法描述
list.sort()sort()直接修改原list。永久性地修改列表元素的排列顺序。
list.sorted()sorted()是Python的内置函数,会返回一个新的已经排好序的list不更改原list
list.reverse()reverse()反转列表元素的排列顺序。
len(list)len()获得列表长度

​ sort()与sorted()函数:

  • sort()只是为列表设计,会直接修改原list。也就是说,方法sort()永久性地修改列表元素的排列顺序。

    • list.sort(cmp=None, key=None, reverse=False)
      # cmp和key: 可选,这两个参数可以暂时不用管
      # reverse: 排序规则。reverse=True,降序;reverse=False,升序;默认为升序。
      
  • sorted()是Python的内置函数,会返回一个新的已经排好序的list不更改原list。sorted()可接受所有可迭代对象,比如元组、字典、字符串等。

    • sorted(iterable,cmp=None,key=None,reverse=False)
      	"""
      	对一个可迭代对象(iterable)排序,返回一个排好序的list
      	iterable: 可迭代的对象
      	cmp: 自定义的比较函数,含两个参数
      	key: 自定义的函数,1个参数,参数值来源于list元素。key常与lambda结合使用。
      	reverse=False,升序(默认);reverse=True,降序。
      	"""
      

    sort()与sorted()函数演示:

    # sort()
    letters = ['b','c','a','d','e']
    numbers = [3,4,1,5,2,6]
    print(letters)
    print(numbers)
    '''输出结果:
    ['e', 'd', 'c', 'b', 'a']
    [1, 2, 3, 4, 5, 6]
    '''
    # sorted()
    def sorted_list():
        """
        关于list类型的排序操作
        """
        # 数值类型
        test_list = [1, 33, 6, 12]
        print(sorted(test_list))
        print(sorted(test_list, reverse=True))
        print(test_list)
    
        # 字符串类型
        test_list = ["a", "boy", "named", "marvin"]
        print(sorted(test_list))
        print(sorted(test_list, reverse=True))
        print(test_list)
    
        # tuple类型
        test_list = [("Up", 0), ("Down", 1), ("Left", 2), ("Right", 3)]
        # tuple的index=0处值比较,即"Up","Down"等比较
        print(sorted(test_list, key=lambda item: item[0]))
        # tuple的index=1处值比较,即0,1等比较
        print(sorted(test_list, key=lambda item: item[1]))
        print(test_list)
    sorted_list()
    '''输出结果:
    [1, 6, 12, 33]
    [33, 12, 6, 1]
    [1, 33, 6, 12]
    
    ['a', 'boy', 'marvin', 'named']
    ['named', 'marvin', 'boy', 'a']
    ['a', 'boy', 'named', 'marvin']
    
    [('Down', 1), ('Left', 2), ('Right', 3), ('Up', 0)]
    [('Up', 0), ('Down', 1), ('Left', 2), ('Right', 3)]
    [('Up', 0), ('Down', 1), ('Left', 2), ('Right', 3)]
    '''    
    
    
  • reverse():反转列表元素的排列顺序。

    • reverse()永久性地修改列表元素的排列顺序,但随时可恢复原来的排列顺序,只需对列表再次调用reverse()即可。
  • len():获取列表长度

    # reverse()反转列表元素的排列顺序
    cars = ['bmw','audi','toyota','subaru']
    cars.reverse()
    print(cars)
    '''输出:
    ['subaru', 'toyota', 'audi', 'bmw']
    '''
    # len() 获取列表长度
    cars = ['bmw','audi','toyota','subaru']
    length = len(cars)
    print(length)
    '''输出:
    4'''
    

1.4避免索引错误:list index out of range

  • 索引错误意味着Python在指定索引处找不到元素
  • 列表元素的索引从0开始,最后一个元素的索引为-1
  • 当列表为空时,使用索引也会发生错误

参考学习:

python sorted方法:https://blog.csdn.net/ymaini/article/details/81633775

相关书籍:《Python编程从入门到实践(第2版)》

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值