Python——列表数据类型及常用操作

534 阅读4分钟

这是我参与11月更文挑战的第5天,活动详情查看:2021最后一次更文挑战

列表是最常用的 Python 数据类型,与 JAVA、C 中数组不同的是:

  • 列表(List)存储的数据项不需要具有相同的类型

  • 数组(Array)的数据项必须是同一数据类型

格式

[数据1,数据2,数据3,数据4......]

注:列表(List)可以一次性存储多个数据,且可以为==不同数据类型==。

常用操作

列表的基础操作包括:增、删、改、查。

1、查找


下标

获取指定下标的数据。

  1. 语法:

    列表序列[下标]
    
  2. 示例:

    name_list = ['Tom','Lily','Rose']
    print(name_list[0])		#Tom
    print(name_list[1])		#Lily
    print(name_list[2])		#Rose
    

index()

返回指定数据所在位置的==下标==。

  1. 语法:

    列表序列.index(数据,开始位置下标,结束位置下标)
    
  2. 示例:

    name_list = ['Tom','Lily','Rose']
    print(name_list.index('Lily'))			#1
    print(name_list.index('Lily',0,2))		#1
    # print(name_list.index('Lil'))			
    

    注:如果查找结果不存在则报错:ValueError: 'Lil' is not in list

count()

统计指定数据在当前列表中==出现的次数==。

  1. 语法:

    列表序列.count(数据)
    
  2. 示例:

    name_list = ['Tom','Lily','Rose']
    print(name_list.count('Lil'))		#0
    print(name_list.count('Lily'))		#1
    

len()

返回列表长度,即列表中数据的个数。

  1. 语法:

    len(列表)
    
  2. 示例:

    name_list = ['Tom','Lily','Rose']
    print(len(name_list))		#3
    

in()

判断指定的数据是否存在某个列表序列,如果==存在则返回 True==,否则返回 False

  1. 语法:

    数据 in 列表
    
  2. 示例:

    name_list = ['Tom','Lily','Rose']
    print('Lil' in name_list)		#False
    print('Lily' in name_list)		#True
    

not in()

判断指定的数据是不在某个列表序列,如果==不存在则返回 True==,否则返回 False

  1. 语法:

    数据 not in 列表
    
  2. 示例:

    name_list = ['Tom','Lily','Rose']
    print('Lil' not in name_list)		#True
    print('Lily' not in name_list)		#False
    

2、增加

增加指定数据到列表中。

append()

在列表结尾追加数据。

  1. 语法:

    列表序列.append(数据)
    
  2. 示例:

    • 数据为单个数据

      name_list = ['Tom','Lily','Rose']
      name_list.append('XiaoMing')
      print(name_list)		#['Tom', 'Lily', 'Rose', 'XiaoMing']
      
    • 数据为一个列表序列(整个==列表序列作为一个元素==追加到尾部)

      name_list1 = ['Tom','Lily','Rose']
      name_list2 = ['Tim','Lee','Rosy']
      name_list1.append(name_list2)
      print(name_list1)       #['Tom', 'Lily', 'Rose', ['Tim', 'Lee', 'Rosy']]
      print(name_list2)       #['Tim', 'Lee', 'Rosy']
      

extend()

在列表结尾追加数据,如果数据是一个序列,则将这个序列的数据==拆分==再逐一添加到列表。

  1. 语法:

    列表序列.extend(数据)
    
  2. 示例:

    • 数据为单个数据(将数据==拆开==,逐一添加到列表)

      name_list = ['Tom','Lily','Rose']
      name_list.extend('XiaoMing')
      print(name_list)		#['Tom', 'Lily', 'Rose', 'X', 'i', 'a', 'o', 'M', 'i', 'n', 'g']
      
    • 数据为一个列表序列(==列表序列的元素==追加到尾部)

      name_list1 = ['Tom','Lily','Rose']
      name_list2 = ['Tim','Lee','Rosy']
      name_list1.extend(name_list2)
      print(name_list1)       #['Tom', 'Lily', 'Rose', 'Tim', 'Lee', 'Rosy']
      print(name_list2)       #['Tim', 'Lee', 'Rosy']
      

insert()

在列表==指定位置新增数据==。

  1. 语法:

    列表序列.insert(位置下标,数据)
    
  2. 示例:

    name_list = ['Tom','Lily','Rose']
    name_list.insert(4,'XiaoMing')
    # name_list.insert(len(name_list),'XiaoMing')
    print(name_list)		#['Tom', 'Lily', 'Rose', 'XiaoMing']
    

3、删除

del

删除目标。

  1. 语法:

    del 目标
    
  2. 示例:

    • 删除列表

      name_list = ['Tom','Lily','Rose']
      del name_list
      print(name_list)		#NameError: name 'name_list' is not defined
      
    • 删除指定数据

      name_list = ['Tom','Lily','Rose']
      del name_list[1]
      print(name_list)		#['Tom', 'Rose']
      

pop()

删除指定下标的数据(==默认最后一个==),并==返回删除的数据==。

  1. 语法:

    列表序列.pop(下标)
    
  2. 示例:

    name_list = ['Tom','Lily','Rose']
    pop_name1 = name_list.pop()
    pop_name2 = name_list.pop(1)
    print(name_list)		#['Tom']
    print(pop_name1)		#Rose
    print(pop_name2)		#Lily
    

remove()

移除列表中某个数据的==第一个匹配项==。

  1. 语法:

    列表序列.remove(数据)
    
  2. 示例:

    name_list = ['Tom','Lily','Rose','Lily']
    name_list.remove('Lily')    
    print(name_list)		#['Tom', 'Rose', 'Lily']
    

clear()

清空列表。

  1. 语法:

    列表序列.clear()
    
  2. 示例:

    name_list = ['Tom','Lily','Rose','Lily']
    name_list.clear()
    print(name_list)		#[]
    

4、修改

下标

修改指定下标的数据。

  1. 语法:

    列表序列[下标]=数据
    
  2. 示例:

    name_list = ['Tom','Lily','Rose','Lily']
    name_list[3]='LiMing'
    print(name_list)		#['Tom', 'Lily', 'Rose', 'LiMing']
    

reverse()

将列表序列数据逆置。

  1. 语法:

    列表序列.reverse()
    
  2. 示例:

    name_list = ['Tom','Lily','Rose','Lily']
    name_list.reverse()
    print(name_list)		#['Lily', 'Rose', 'Lily', 'Tom']
    

sort()

对列表序列数据进行排列,==默认升序==。

  1. 语法:

    列表序列.sort(key=None,reverse=False)
    

    注:key 配合字典 Key;reverse 表示排序规则,reverse=True 降序,reverse=Fasle 升序(默认)

  2. 示例:

    name_list = ['Tom', 'Aily', 'Rose', 'Ably']
    name_list.sort()
    print(name_list)  # ['Ably', 'Aily', 'Rose', 'Tom']
    name_list.sort(reverse=False)
    print(name_list)  # ['Ably', 'Aily', 'Rose', 'Tom']
    name_list.sort(reverse=True)
    print(name_list)  # ['Tom', 'Rose', 'Aily', 'Ably']
    

5、复制

copy()

复制一个列表序列的数据并返回一个列表序列。

  1. 语法:

    列表序列.copy()
    
  2. 示例:

    name_list = ['Tom', 'Aily', 'Rose', 'Ably']
    name_list_copy = name_list.copy()
    print(name_list)   # ['Ably', 'Aily', 'Rose', 'Tom']
    print(name_list_copy)   # ['Tom', 'Aily', 'Rose', 'Ably']
    

6、循环遍历

while

name_list = ['Tom', 'Aily', 'Rose', 'Ably']
i = 0
while i < len(name_list):			
    print(name_list[i],end=" ")		# Tom Aily Rose Ably 
    i += 1

for

name_list = ['Tom', 'Aily', 'Rose', 'Ably']
for i in name_list:
    print(i,end=" ")		# Tom Aily Rose Ably 

7、列表嵌套

列表嵌套指一个列表中包含了其他子列表。

  1. 语法:

    列表序列=[列表序列1,列表序列2,列表序列3......]
    
  2. 示例:

    # 输出列表中的 5
    name_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
    
    # 1、按下标找到 5 所在的列表
    print(name_list[1])  # [4, 5, 6]
    # 1、从 5 所在的列表中,再按下标找到数据 5
    print(name_list[1][1])  # 5
    
    # 遍历输出
    for i in name_list:
        for j in i:
            print(j, end=" ")  # 1 2 3 4 5 6 7 8 9