一 列表的增删改

1.1 增 - 在列表中添加元素

  1. append
    语法:
    列表.append(元素) - 在立列表最后添加指定的元素(不会产生新的数据,是直接修改的原列表)
    例如:
names = [' 路飞', '佐罗', '罗宾']
names.append('娜美')
print(names)
  1. insert
    语法:
    列表.insert(下标,元素) - 在指定下标前插入指定元素
    例如:
names.insert(1, '乌索普')
print(names)
names.insert(0, '山治')
print(names)
  1. extend
    语法:
    列表.extend(序列) - 将序列中所有的元素添加到列表的最后
    例如:
sports = ['篮球', '足球', '乒乓球']
sports.extend(['羽毛球', '排球'])
print(sports)

练习:给一个分数列表:[90, 56, 78, 89, 45,32, 100], 在这个列表中所有不及格的分数后加上元素:0

scores = [90, 56, 78, 89, 45, 32, 10]
new_scores = scores[:]  #   -   把scores的值赋给new_scores,其中new_scores是新的变量,即重新开辟的空间
index = 0
for item in new_scores:
    if item < 60:
        scores.insert(index + 1, 0)
        index += 1
    index += 1
print(scores)

1.2 删除列表中的元素

  1. del
    语法:
    del 列表[下标] - 删除列表中指定下标对应的元素(下标不能越界)
    例如:
names = ['后裔', '王昭君', '伽罗', '百里守约', '甄姬']
del names[2]
print(names)
  1. remove
    语法:
    列表.remove(元素) - 删除列表中指定元素(①如果元素不存在会报错!②如果列表中有多个相同元素,只删除最前面的那个)
names = ['后裔', '王昭君', '伽罗', '百里守约', '甄姬']
names.remove('伽罗')
print(names)
  1. pop
    语法:
    列表.pop() - 取出列表中的最后一个元素
    列表.pop(下标) - 取出列表中指定下标对应的元素
    例如:
names = ['后裔', '王昭君', '伽罗', '百里守约', '甄姬']
name1 = names.pop()
print(name1)
  1. clear
    语法:
    列表.clear() - 删除列表中所有的元素
    例如:
names = ['后裔', '王昭君', '伽罗', '百里守约', '甄姬']
names.clear()   # 效率比直接赋值为[]高
print(names)
  • 练习:删除scores中所有低于60的分数 scores = [90, 56, 78, 89, 45, 32, 10]
scores = [90, 56, 40, 67, 92, 89, 59]
new_scores = scores[:]
index = 0
for item in new_scores:
    if item < 60:
        scores.remove(item)
    #     index -= 1
    # index += 1
print(scores)

1.3 改 - 修改列表元素的值

语法:
列表[下标] = 新元素 - 将列表指定下标对应的元素写改成新的元素
例如:

movies = ['恐怖游轮', '致命ID', '忍者神龟', '赌神', '雪国列车']
movies[3] = '盗梦空间'
print(movies)
  • 练习:将scores中低于60的全部置零
scores = [90, 56, 40, 67, 92, 89, 59]
for index, item in enumerate(scores):
    if item < 60:
        scores[index] = 0
print(scores)

二.列表的加法运算和乘法运算

加法和乘法运算都不会改变原列表的值

2.1 加法运算

语法:
列表1 + 列表2 - 在列表1后面添加列表2的内容,产生新的列表
例如:

list1 = [10, 20, 30] + [1, 2, 3]
print(list1)

2.2 乘法运算

语法:
列表 * N / N * 列表 - 列表中的元素重复N次产生一个新的列表(N为正整数)
例如:

list2 = [1, 2, 3] * 3
print(list2)

2.3 比较运算

1.== !=
不通的顺序是不同的列表
2. _ >, <, >=, <=
两个列表比较大小,比较的是第一对不相等的元素的大小(从前往后下标相同的为一对)
例如:

print([100, 200, 300, 400] > [200, 100])  # False
  1. in 和 not in
    语法:
    元素 in 列表 - 判断指定元素是否在指定的列表中
    元素 not in 列表 - 判断指定元素是否不在指定的列表中
    例如:
names = ['李白', '杜甫', '白居易', '辛弃疾']
print('陶渊明' in names)

练习:获取同时选了两门课的学生的姓名
python = [‘小明’, ‘张三’, ‘小法’, ‘小鱼’, ‘小炮’]
javas = [‘李四’, ‘小鱼’, ‘小法’, ‘王五’, ‘jim’]
方法一:

for name in python:
    for name2 in javas:
        if name == name2:
            print(name2)

方法二:

for name3 in python:
    if name3 in javas:
        print(name3)

2.4 系统函数:max/min/sorted/sum/len/list

  • len(序列) - 获取序列中元素的个数
python = ['小明', '张三', '小法', '小鱼', '小炮']
print(len(python))
  • max(序列)/min(序列) - 求序列中元素的最大值/最小值
scores = [89, 20, 23, 6, 36, 69]
print(max(scores))
print(min(scores))
  • sorted(序列) - 将序列中的元素从小到大排序,产生一个新的列表。(不会修改原序列)
  • sorted(序列,reverse=True) - 将序列中的元素从大到小排序,产生一个新的列表。(不会修改原序列)
new_scores = sorted(scores)
print(scores)
print(new_scores)
new_scores1 = sorted(sorted(scores), reverse=True)
print(new_scores1)
  • sum(序列) - 求序列中所有元素的和(序列中的元素必须是数字)
sum1 = sum(scores)
print(sum1)
  • list(序列) - 将指定的序列转换成列表(①所有的序列都可以转换成列表,②将序列中的元素变成列表中的元素
print(list('abc'))
print(list(range(4)))
  • 列表.copy() - 复制原列表产生一个一摸一样的新列表(相当于 列表[:])
nums = [10, 20, 20]
nums1 = nums.copy()
print(nums1)
  • 列表.count(元素) - 统计列表中指定元素的个数
foods = ['大闸蟹', '龙虾', '花甲', '包子', '油条', '龙虾', '包子']
num = foods.count('龙虾')
print(num)
print(foods.count('大虾'))
  • 列表.index(元素) - 获取指定元素的下标(①如果有多个相同元素只返回第一个元素的下标;②如果元素不在列表中会报错)
print(foods.index('花甲'))
  • 列表.reverse() - 将指定的列表逆序
foods.reverse()
print(foods)
  • 列表.sort() - 将列表中的元素从小到大排序(不会产生新的列表)
  • 列表.sort(reverse = True) - 将列表中的元素从大到小排序(不会产生新的列表)
ages = [25, 23, 42, 42, 44, 67]
ages.sort()
print(ages)
ages.sort(reverse=True)
print(ages)