列表中存放的数据是可以进行修改的,比如”增”、”删”、”改”、”查”

1. 添加元素(“增”append, extend, insert)

append

通过append可以向列表添加元素
demo:

  1. #定义变量A,默认有3个元素
  2. A = ['xiaoWang','xiaoZhang','xiaoHua']
  3. print("-----添加之前,列表A的数据-----")
  4. for tempName in A:
  5. print(tempName)
  6. #提示、并添加元素
  7. temp = input('请输入要添加的学生姓名:')
  8. A.append(temp)
  9. print("-----添加之后,列表A的数据-----")
  10. for tempName in A:
  11. print(tempName)

结果:
image.png

extend

通过extend可以将另一个集合中的元素逐一添加到列表中

  1. >>> a = [1, 2]
  2. >>> b = [3, 4]
  3. >>> a.append(b)
  4. >>> a
  5. [1, 2, [3, 4]]
  6. >>> a.extend(b)
  7. >>> a
  8. [1, 2, [3, 4], 3, 4]

insert

insert(index, object) 在指定位置index前插入元素object
如下是在索引1的位置插入一个元素3

  1. >>> a = [0, 1, 2]
  2. >>> a.insert(1, 3)
  3. >>> a
  4. [0, 3, 1, 2]

2. 修改元素(“改”)

索引正

修改元素的时候,要通过下标来确定要修改的是哪个元素,然后才能进行修改
demo:

  1. #定义变量A,默认有3个元素
  2. A = ['xiaoWang','xiaoZhang','xiaoHua']
  3. print("-----修改之前,列表A的数据-----")
  4. for tempName in A:
  5. print(tempName)
  6. #修改元素
  7. A[1] = 'xiaoLu'
  8. print("-----修改之后,列表A的数据-----")
  9. for tempName in A:
  10. print(tempName)

结果:

  1. -----修改之前,列表A的数据-----
  2. xiaoWang
  3. xiaoZhang
  4. xiaoHua
  5. -----修改之后,列表A的数据-----
  6. xiaoWang
  7. xiaoLu
  8. xiaoHua

索引负

下标有正数下标,也有负数下标,如果想要修改最后一个元素,那么直接

  1. A[-1]="new name"

切片修改

扩展:根据切片修改列表中的一部分数据

  1. name_list=['A','B','C']
  2. name_list[0:3:2]=['D','E']
  3. print(name_list) # ['D', 'B', 'E']

3. 查找元素(“查”in, not in, index, count)

所谓的查找,就是看看指定的元素是否存在

in, not in

python中查找的常用方法为:

  • in(存在),如果存在那么结果为true,否则为false
  • not in(不存在),如果不存在那么结果为true,否则false

demo: findName in nameList 返回值为True or False

  1. #待查找的列表
  2. nameList = ['xiaoWang','xiaoZhang','xiaoHua']
  3. #获取用户要查找的名字
  4. findName = input('请输入要查找的姓名:')
  5. #查找是否存在
  6. if findName in nameList:
  7. print('在字典中找到了相同的名字')
  8. else:
  9. print('没有找到')

结果1:(找到)

  1. 请输入要查找的姓名:xiaoWang
  2. 在字典中找到了相同的名字

结果2:(没有找到)

  1. 请输入要查找的姓名:xiaowang
  2. 没有找到

说明:

in的方法只要会用了,那么not in也是同样的用法,只不过not in判断的是不存在

index, count

index和count与字符串中的用法相同

  • index:表示查找指定数据 或 该数据在列表中的下标—-如果没查找到那么会报错 list.index(‘somedata’,0,2)

(要查找的数据,开始下标,结束下标-不包含)

  • count: 表示统计指定数据在列表中出现的次数—如果列表中不存在,那么返回0,并且不能指定范围了

    1. >>> a = ['a', 'b', 'c', 'a', 'b']
    2. >>> a.index('a', 1, 3) # 注意是左闭右开区间
    3. Traceback (most recent call last):
    4. File "<stdin>", line 1, in <module>
    5. ValueError: 'a' is not in list
    6. >>> a.index('a', 1, 4)
    7. 3
    8. >>> a.count('b')
    9. 2
    10. >>> a.count('d')
    11. 0

    4.删除元素(del, pop, remove)

    类比现实生活中,如果某位同学调班了,那么就应该把这个条走后的学生的姓名删除掉;在开发中经常会用到删除这种功能。
    列表元素的常用删除方法有:

  • del:根据下标进行删除

  • pop:删除最后一个元素
  • remove:根据元素的值进行删除

demo:(del)

  1. movieName = ['加勒比海盗','骇客帝国','第一滴血','指环王','霍比特人','速度与激情']
  2. print('------删除之前------')
  3. for tempName in movieName:
  4. print(tempName)
  5. del movieName[2]
  6. print('------删除之后------')
  7. for tempName in movieName:
  8. print(tempName)

结果:

  1. ------删除之前------
  2. 加勒比海盗
  3. 骇客帝国
  4. 第一滴血
  5. 指环王
  6. 霍比特人
  7. 速度与激情
  8. ------删除之后------
  9. 加勒比海盗
  10. 骇客帝国
  11. 指环王
  12. 霍比特人
  13. 速度与激情

demo:(pop) 不指定下标默认删除最后一个。返回删掉的值。

  1. movieName = ['加勒比海盗','骇客帝国','第一滴血','指环王','霍比特人','速度与激情']
  2. print('------删除之前------')
  3. for tempName in movieName:
  4. print(tempName)
  5. movieName.pop()
  6. print('------删除之后------')
  7. for tempName in movieName:
  8. print(tempName)

结果:

  1. ------删除之前------
  2. 加勒比海盗
  3. 骇客帝国
  4. 第一滴血
  5. 指环王
  6. 霍比特人
  7. 速度与激情
  8. ------删除之后------
  9. 加勒比海盗
  10. 骇客帝国
  11. 第一滴血
  12. 指环王
  13. 霍比特人

demo:(remove) 从列表中删除的数据必须要存在,如果不存在,那么会报错valueError,x not in list

  1. movieName = ['加勒比海盗','骇客帝国','第一滴血','指环王','霍比特人','速度与激情']
  2. print('------删除之前------')
  3. for tempName in movieName:
  4. print(tempName)
  5. movieName.remove('指环王')
  6. print('------删除之后------')
  7. for tempName in movieName:
  8. print(tempName)

结果:

  1. ------删除之前------
  2. 加勒比海盗
  3. 骇客帝国
  4. 第一滴血
  5. 指环王
  6. 霍比特人
  7. 速度与激情
  8. ------删除之后------
  9. 加勒比海盗
  10. 骇客帝国
  11. 第一滴血
  12. 霍比特人
  13. 速度与激情

5. 排序(sort, reverse)和反转

  • sort方法是将list按特定顺序重新排列,默认为由小到大,参数reverse=True可改为倒序,由大到小。
  • reverse方法是将list逆置。

🔱 提示:排序后不需要使用变量保存,会直接改变使用sort方法的数组。

  1. >>> a = [1, 4, 2, 3]
  2. >>> a
  3. [1, 4, 2, 3]
  4. >>> a.reverse()
  5. >>> a
  6. [3, 2, 4, 1]
  7. >>> a.sort()
  8. >>> a
  9. [1, 2, 3, 4]
  10. >>> a.sort(reverse=True)
  11. >>> a
  12. [4, 3, 2, 1]