Python 列表list详解(超详细)

02-27 1964阅读

文章目录

  • Python内置函数/方法详解—列表list
    • 1、创建列表
      • 1.1 使用 [ ] 创建列表
      • 1.2 使用 list() 函数 创建(转换为)列表
      • 2、访问列表
        • 2.1 下标索引访问
        • 2.2 切片访问
        • 2.3 for 循环遍历列表
        • 2.4 检查项目是否存在
        • 2.5 更改列表值
        • 2.6 列表连接(合并)/复制
        • 2.7 嵌套列表
        • 2.8 列表比较
        • 3、内置函数
          • 3.1 打印输出 print()
          • 3.2 确定列表项目 len()
          • 3.3 返回变量类型 type()
          • 3.4 转换为列表 list()
          • 3.5 元组元素最大/小值 max()、min()
          • 3.6 删除列表 del
          • 4、内置方法
            • 4.1 添加元素 append()、insert()、extend()
            • 4.2 元素出现次数 count()
            • 4.3 指定值索引 index()
            • 4.4 对列表排序 sort()
            • 4.5 复制列表 copy()
            • 4.6 颠倒列表顺序 reverse()
            • 4.7 删除元素 pop()、remove()、clear()
            • 5、总结

              Python内置函数/方法详解—列表list

              列表是一个有序且可更改的集合,并且是最常用的 Python 数据类型。在 Python 中,列表是使用方括号 [] 编写的。

              Python 列表list详解(超详细)
              (图片来源网络,侵删)

              1、创建列表

              在Python中,列表中元素的数据类型可以不同,可以包含整数、浮点数和复数等,当然,也可以包含列表、元组、字典和集合等。

              1.1 使用 [ ] 创建列表

              创建一个列表,只需要把逗号分隔的不同数据项使用方括号 [] 括起来即可。

              • 创建空列表
                list0 = []
                
                • 创建非空列表
                  list1 = ['Baidu', 'Alibaba', 'Tencent']
                  

                  1.2 使用 list() 函数 创建(转换为)列表

                  • 可以使用 list() 构造函数创建列表:
                    this_list = list(('apple', 'banana', 'cherry'))
                    

                    注意:在使用 list() 函数创建列表时,一定要注意双括号。

                    • 在Python中,我们可以使用 list() 函数将字符串、元组、字典和集合等其他类似对象转换为列表。具体用法见下方内置函数:

                      2、访问列表

                      和列表一样,我们既可以使用下标索引访问列表中的某个元素(得到一个元素的值),也可以使用切片访问列表中的一组元素(得到是子列表)。

                      2.1 下标索引访问

                      下标索引访问元组分为两大类,即正向索引和反向索引,格式为 list_name[i] ,其中,list_name 表示列表名,i表示索引值,i可以是正数(正向索引)也可以是负数(反向索引)。

                      可以得知,list_name[0]表示列表的第一个元素,list_name[-1]则表示列表的最后一个元素。

                      list_name = ['wzq', 'lgl', 'gz', 'whl', 'sj', 'hxw']
                      print(list_name[0])
                      print(list_name[-1])
                      
                      wzq
                      hxw
                      

                      正向索引:从第一个(下标0)开始、第二个(下标1)…

                      反向索引:从倒数第一个(下标-1)、倒数第二个(下标-2)…

                      2.2 切片访问

                      如若对上方描述不太理解,可参考下表:

                      元组值wzqlglgzwhlsjhxw
                      正向索引012345
                      反向索引-6-5-4-3-2-1

                      使用切片访问列表的格式为 list_name[strat : end : step] ,其中,start 表示起始索引,end 表示结束索引,step 表示步长。

                      list_name = ['wzq', 'lgl', 'gz', 'whl', 'sj', 'hxw']
                      print(list_name[1:5:2])
                      print(list_name[-6:-1:3])
                      
                      ['lgl', 'whl']
                      ['wzq', 'whl']
                      

                      在使用切片访问列表元素时,list_name[strat : end : step],[start:end] 是左闭右开区间,即访问不了 end 代表的元素。

                      2.3 for 循环遍历列表

                      可以使用 for 循环遍历列表中的项目:

                      fruit_list = ['apple', 'pear', 'cherry']
                      for i in fruit_list:
                          print(i)
                      
                      apple
                      pear
                      cherry
                      

                      2.4 检查项目是否存在

                      要确定列表中是否存在指定的项,我们可以使用 in 关键字:

                      # 检查列表中是否存在'apple'
                      fruit_list = ['apple', 'pear', 'cherry']
                      print('apple' in fruit_list)
                      
                      True
                      

                      使用 in 关键字检查列表中是否存在指定项时,如果存在,则返回 True ;反之,则返回 False 。

                      2.5 更改列表值

                      当我们创建列表后,我们可以对列表中的数据项进行修改或更新,当然我们也可以使用 append() 方法来添加列表项。

                      fruit_list = ['apple', 'pear', 'cherry']
                      fruit_list[2] = 'banana'
                      print(fruit_list)
                      
                      ['apple', 'pear', 'banana']
                      

                      注意:元组一旦创建后,其值将无法被更改,但是有其他解决方法。

                      2.6 列表连接(合并)/复制

                      与字符串一样,列表之间可以使用 + 号和 * 号实现元组的连接和复制,这就意味着它们可以生成一个新的列表。

                      1、+连接(合并)

                      x = [1, 2, 3]
                      y = [4, 5, 6]
                      print(x + y)
                      
                      [1, 2, 3, 4, 5, 6]
                      

                      2、*复制

                      x = ['Hello']
                      print(x * 5)
                      
                      ['Hello', 'Hello', 'Hello', 'Hello', 'Hello']
                      

                      2.7 嵌套列表

                      使用嵌套列表即在列表里面创建其他列表。

                      x = [1, 2, 3]
                      y = ['a', 'b', 'c']
                      z = [x, y]
                      print(z)
                      
                      [[1, 2, 3], ['a', 'b', 'c']]
                      

                      2.8 列表比较

                      列表比较需要引入 operator 模块的 eq 方法。

                      # 导入 operator 模块
                      import operator
                      a = [1, 2]
                      b = [2, 3]
                      c = [2, 3]
                      print("operator.eq(a, b):", operator.eq(a, b))
                      print("operator.eq(b, c):", operator.eq(b, c))
                      
                      operator.eq(a, b): False
                      operator.eq(b, c): True
                      

                      3、内置函数

                      3.1 打印输出 print()

                      1、print()函数

                      print() 函数的功能我们已经非常熟悉了,就是打印输出。

                      my_list = ['pink', True, 1.78, 65]
                      print(my_list)
                      
                      ['pink', True, 1.78, 65]
                      

                      3.2 确定列表项目 len()

                      2、len()函数

                      当我们要确定一个列表有多少项目(元素)时,可以使用len()函数。

                      fruit_list = ['apple', 'banana', 'cherry']
                      print(len(fruit_list))
                      
                      3
                      

                      3.3 返回变量类型 type()

                      3、type()函数

                      使用 type() 函数可以确定变量是什么类型(字符串、列表、元组、字典或集合)。

                      info_list = ['name', 'gender', 'age', 'height', 'weight']
                      print(type(info_list))
                      
                       
                       
                       

                      当对info_list使用 type() 确定变量类型时,会返回,表明这是一个列表。

                      3.4 转换为列表 list()

                      4、tuple()函数

                      tuple() 函数的功能是,将其他类型转换为元组类型,详细用法如下:

                      • 将字符串转换为列表
                        str1 = 'Hello Python'
                        print(list(str1))
                        
                        ['H', 'e', 'l', 'l', 'o', ' ', 'P', 'y', 't', 'h', 'o', 'n']
                        
                        • 将元组转换为列表
                          tuple1 = ('Hello', 'Python')
                          print(list(tuple1))
                          
                          ['Hello', 'Python']
                          
                          • 将字典转换为列表
                            dict1 = {'Hello': 'Python', 'name': 'pink'}
                            print(list(dict1))
                            
                            ['Hello', 'name']
                            
                            • 将集合转换为列表
                              set1 = {'Hello', 'Python', 'name', 'pink'}
                              print(list(set1))
                              
                              ['Python', 'name', 'pink', 'Hello']
                              
                              • 将区间转换为列表
                                range1 = range(1, 6)
                                print(list(range1))
                                
                                [1, 2, 3, 4, 5]
                                

                                3.5 元组元素最大/小值 max()、min()

                                5、max()函数和min()函数

                                max() 函数的作用是返回列表中元素最大值。min() 函数的作用是返回列表中元素最小值。

                                list1 = [4, 6, 2, 0, -5]
                                print(max(list1))
                                print(min(list1))
                                list2 = ['a', 'z', 'A', 'Z']
                                print(max(list2))
                                print(min(list2))
                                
                                6
                                -5
                                z
                                A
                                

                                3.6 删除列表 del

                                • 删除单个元素

                                  我们可以使用 del list_name[i] 来删除某个指定元素,其中 list_name 表示列表名,i 表示指定值的索引值。

                                  list_de = ['Baidu', 'Alibaba', 'Tencent', 'Bytedance']
                                  del list_de[1]
                                  print(list_de)
                                  
                                  ['Baidu', 'Tencent', 'Bytedance']
                                  
                                  • 删除列表

                                    del 函数不仅可以实现删除某个元素,还可以删除整个列表。

                                    list_de = ['Baidu', 'Alibaba', 'Tencent', 'Bytedance']
                                    del list_de
                                    

                                    当我们使用 del 函数删除某列表后,再使用 print() 函数打印输出时,会报错NameError: name 'list_de' is not defined,表明该列表未被定义。

                                    4、内置方法

                                    4.1 添加元素 append()、insert()、extend()

                                    1、append()方法

                                    append() 方法用于在列表末尾添加新的对象。

                                    语法

                                    list.append(element)
                                    

                                    参数值

                                    参数描述
                                    element必需。任何类型(字符串、数字、对象等)的元素。

                                    实例

                                    • 添加元素
                                      fruit_list = ['apple', 'banana', 'cherry']
                                      fruit_list.append('pear')
                                      print(fruit_list)
                                      
                                      ['apple', 'banana', 'cherry', 'pear']
                                      
                                      • 添加列表
                                        x = [1, 2, 3]
                                        y = ['A', 'B', 'C']
                                        x.append(y)
                                        print(x)
                                        
                                        [1, 2, 3, ['A', 'B', 'C']]
                                        

                                        2、insert()方法

                                        insert() 方法用于将指定对象插入列表的指定位置。

                                        语法

                                        list.insert(position, element)
                                        

                                        参数值

                                        参数描述
                                        position必需。数字,指定在哪个位置插入值。
                                        element必需。元素,任何类型(字符串、数字、对象等)。

                                        实例

                                        • 把值 “orange” 作为第二个元素插入 fruits 列表:
                                          fruits = ['apple', 'banana', 'cherry']
                                          fruits.insert(1, "orange")
                                          print(fruits)
                                          
                                          ['apple', 'orange', 'banana', 'cherry']
                                          
                                          • 将列表 y 插入到列表 x 中
                                            x = [1, 2, 3]
                                            y = ['a', 'c']
                                            x.insert(0, y)
                                            print(x)
                                            
                                            [['a', 'c'], 1, 2, 3]
                                            

                                            append() 只能在末尾处添加元素或列表,insert() 可以在任意位置添加元素或列表。

                                            3、extend()方法

                                            extend() 方法用于在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)。

                                            语法

                                            list.extend(iterable)
                                            

                                            参数值

                                            参数描述
                                            iterable必需。任何可迭代对象(列表、集合、元组等)。

                                            实例

                                            aver = ['A', 'B', 'C']
                                            
                                            • 添加字符串元素到列表末尾
                                              str1 = 'Hello'
                                              aver.extend(str1)
                                              print(aver)
                                              
                                              ['A', 'B', 'C', 'H', 'e', 'l', 'l', 'o']
                                              
                                              • 添加列表元素到列表末尾
                                                list1 = [1, 2, 3]
                                                aver.extend(list1)
                                                print(aver)
                                                
                                                ['A', 'B', 'C', 1, 2, 3]
                                                
                                                • 添加元组元素到列表末尾
                                                  tuple1 = (1, 2, 3)
                                                  aver.extend(tuple1)
                                                  print(aver)
                                                  
                                                  ['A', 'B', 'C', 1, 2, 3]
                                                  
                                                  • 添加字典元素到列表末尾
                                                    dict1 = {'name': 'pink', 'gender': True}
                                                    aver.extend(dict1)
                                                    print(aver)
                                                    
                                                    ['A', 'B', 'C', 'name', 'gender']
                                                    
                                                    • 添加集合元素到列表末尾
                                                      set1 = {1, 2, 3}
                                                      aver.extend(set1)
                                                      print(aver)
                                                      
                                                      ['A', 'B', 'C', 1, 2, 3]
                                                      
                                                      • 添加区间到列表末尾
                                                        range1 = range(1,10)
                                                        aver.extend(range1)
                                                        print(aver)
                                                        
                                                        ['A', 'B', 'C', 1, 2, 3, 4, 5, 6, 7, 8, 9]
                                                        

                                                        4.2 元素出现次数 count()

                                                        count() 方法用于统计某个元素在列表中出现的次数。

                                                        语法

                                                        list.count(value)
                                                        

                                                        参数值

                                                        参数描述
                                                        value必需。任何类型(字符串、数字、列表、元组等)。要搜索的值。

                                                        实例

                                                        num = [1, 4, 2, 9, 7, 8, 9, 3, 1]
                                                        print(num.count(9))
                                                        
                                                        2
                                                        

                                                        4.3 指定值索引 index()

                                                        index() 方法用于从列表中找出某个值第一个匹配项的索引位置。

                                                        语法

                                                        list.index(element)
                                                        

                                                        参数值

                                                        参数描述
                                                        element必需。任何类型(字符串、数字、列表等)。要搜索的值。

                                                        实例

                                                        num = [4, 55, 64, 32, 16, 32]
                                                        print(num.index(32))
                                                        
                                                        3
                                                        

                                                        当被搜索值在列表中多次出现时,仅返回首次出现的位置。

                                                        4.4 对列表排序 sort()

                                                        sort() 方法用于对原列表进行排序,如果指定参数,则使用比较函数指定的比较函数。

                                                        语法

                                                        list.sort(reverse=True|False, key=myFunc)
                                                        

                                                        参数值

                                                        参数描述
                                                        reverse可选。reverse=True 将对列表进行降序排序。默认是 reverse=False。
                                                        key可选。指定排序标准的函数。

                                                        实例

                                                        • 以字母顺序对列表进行排序:
                                                          words = ['Name', 'Gender', 'Age', 'Height', 'Weight']
                                                          words.sort()
                                                          print(words)
                                                          
                                                          ['Age', 'Gender', 'Height', 'Name', 'Weight']
                                                          
                                                          • 对列表进行降序排序:
                                                            words = ['Name', 'Gender', 'Age', 'Height', 'Weight']
                                                            words.sort(reverse=True)
                                                            print(words)
                                                            
                                                            ['Weight', 'Name', 'Height', 'Gender', 'Age']
                                                            
                                                            • 按照值的长度对列表进行排序:
                                                              # 返回值的长度的函数:
                                                              def myfunc(e):
                                                                  return len(e)
                                                              words = ['a', 'bb', 'ccc', 'dddd', '']
                                                              words.sort(key=myfunc)
                                                              print(words)
                                                              
                                                              ['', 'a', 'bb', 'ccc', 'dddd']
                                                              
                                                              • 根据字典的 “year” 值对字典列表进行排序:
                                                                # 返回 'year' 值的函数:
                                                                def myfunc(e):
                                                                    return e['year']
                                                                words = [
                                                                    {'char': 'a', 'year': 1963},
                                                                    {'char': 'b', 'year': 2010},
                                                                    {'char': 'c', 'year': 2019}
                                                                ]
                                                                words.sort(key=myfunc)
                                                                print(words)
                                                                
                                                                [{'char': 'a', 'year': 1963}, {'char': 'b', 'year': 2010}, {'char': 'c', 'year': 2019}]
                                                                
                                                                • 按照值的长度对列表进行降序排序:
                                                                  # 返回值的长度的函数:
                                                                  def myfunc(e):
                                                                      return len(e)
                                                                  words = ['aa', 'b', 'ccc', 'dddd']
                                                                  words.sort(reverse=True, key=myfunc)
                                                                  print(words)
                                                                  
                                                                  ['dddd', 'ccc', 'aa', 'b']
                                                                  
                                                                  • 指定列表中的元素排序来输出列表:
                                                                    # 获取列表的第二个元素
                                                                    def takeSecond(elem):
                                                                        return elem[1]
                                                                    # 列表
                                                                    random = [(2, 2), (3, 4), (4, 1), (1, 3)]
                                                                    # 指定第二个元素排序
                                                                    random.sort(key=takeSecond)
                                                                    # 输出类别
                                                                    print('排序列表:', random)
                                                                    
                                                                    排序列表: [(4, 1), (2, 2), (1, 3), (3, 4)]
                                                                    

                                                                    4.5 复制列表 copy()

                                                                    copy() 方法用于复制列表,类似于 a[:]。

                                                                    语法

                                                                    list.copy()
                                                                    

                                                                    参数值

                                                                    无参数

                                                                    实例

                                                                    fruits = ['apple', 'banana', 'cherry', 'orange']
                                                                    x = fruits.copy()
                                                                    print(x)
                                                                    
                                                                    ['apple', 'banana', 'cherry', 'orange']
                                                                    

                                                                    复制(制作副本)的另一种方法是使用内置函数 list() ,如下:

                                                                    list1 = ['apple', 'banana', 'cherry']
                                                                    list_2 = list(list1)
                                                                    

                                                                    4.6 颠倒列表顺序 reverse()

                                                                    reverse() 方法用于反向列表中元素。

                                                                    语法

                                                                    list.reverse()
                                                                    

                                                                    参数值

                                                                    无参数

                                                                    实例

                                                                    fruits = ['apple', 'banana', 'cherry']
                                                                    fruits.reverse()
                                                                    print(fruits)
                                                                    
                                                                    ['cherry', 'banana', 'apple']
                                                                    

                                                                    4.7 删除元素 pop()、remove()、clear()

                                                                    1、pop()方法

                                                                    pop() 方法用于移除列表中的一个元素(默认最后一个元素),并且返回该元素的值。

                                                                    语法

                                                                    list.pop(pos)
                                                                    

                                                                    参数值

                                                                    参数描述
                                                                    pos可选。数字,指定需删除元素的位置。默认值 -1,返回最后的项目。

                                                                    实例

                                                                    • 当 pos 未指定时,默认删除最后的元素
                                                                      fruits = ['apple', 'banana', 'cherry']
                                                                      fruits.pop()
                                                                      print(fruits)
                                                                      
                                                                      ['apple', 'banana']
                                                                      
                                                                      • pos 指定要删除元素的位置
                                                                        fruits = ['apple', 'banana', 'cherry']
                                                                        fruits.pop(1)
                                                                        print(fruits)
                                                                        
                                                                        ['apple', 'cherry']
                                                                        

                                                                        2、remove()方法

                                                                        remove() 方法用于移除列表中某个值的第一个匹配项。

                                                                        语法

                                                                        list.remove(element)
                                                                        

                                                                        参数值

                                                                        参数描述
                                                                        element必需。需删除的任何类型(字符串、数字、列表等)的元素。

                                                                        实例

                                                                        num = [1, 3, 2, 8, 3]
                                                                        num.remove(3)
                                                                        print(num)
                                                                        
                                                                        [1, 2, 8, 3]
                                                                        

                                                                        当被删除的元素在列表中存在多个时,默认删除首次出现的那个。

                                                                        3、clear()方法

                                                                        clear() 方法用于清空列表,类似于 del a[:]。

                                                                        语法

                                                                        list.clear()
                                                                        

                                                                        参数值

                                                                        无参数

                                                                        实例

                                                                        word = ['A', 'B', 'C']
                                                                        word.clear()
                                                                        print(word)
                                                                        
                                                                        []
                                                                        

                                                                        clear() 方法的作用是清空列表,执行结束后对其使用 print() 打印输出时,会输出 [] ,说明列表还存在,只是空列表而已。

                                                                        del 函数的作用是删除列表,执行结束后对其使用 print() 打印输出时,会报错 NameError: name 'word' is not defined.。

                                                                        5、总结

                                                                        函数描述
                                                                        print()打印输出
                                                                        len()确定列表项目
                                                                        type()返回变量类型
                                                                        list()转换为列表
                                                                        max()返回列表元素最大值
                                                                        min()返回列表元素最小值
                                                                        del删除列表
                                                                        方法描述
                                                                        append(obj)在列表末尾添加新的对象
                                                                        insert(index, obj)在指定位置添加元素
                                                                        extend(seq)将列表元素(或任何可迭代的元素)添加到当前列表的末尾
                                                                        count(obj)统计某个元素在列表中出现的次数
                                                                        index(obj)返回具有指定值的第一个元素的索引
                                                                        sort( key=None, reverse=False)对原列表进行排序
                                                                        copy()复制列表
                                                                        reverse()颠倒列表的顺序
                                                                        pop([-1])移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
                                                                        remove(obj)移除列表中某个值的第一个匹配项
                                                                        clear()清空列表

                                                                        以上就是本文的全部内容啦!如果对您有帮助,麻烦点赞啦!收藏啦!欢迎各位评论区留言!!!

                                                                        最后编辑于:2023/1/4 20:22

VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]