增 - 添加元素

列表.append(元素) - 在列表的最后添加指定元素(不会产生新的数据,在原数组中直接增加)

tvs = ['回家的诱惑', '非自然死亡', '我的兄弟叫顺溜', '琅琊榜', '甄嬛传', '亮剑', '请回答1988']
print(tvs)
tvs.append('生活大爆炸')
print(tvs)

# 练习:用一个列表保存100以内所有能被3整除的数
num = []
for x in range(0, 100, 3):
    num.append(x)
print(num)

列表.insert (下标, 元素) - 在列表指定的下标所在的位置前,插入指定元素(位置前!)

tvs = ['回家的诱惑', '非自然死亡', '我的兄弟叫顺溜', '琅琊榜', '甄嬛传', '亮剑', '请回答1988']
tvs.insert(1, '人民的名义')
print(tvs)

# 练习: 输入一个列表 score 按分数从高到低,保存了一个班的学生的分数,请输入一个新的分数,插入到score中,不影响排序
score = [98, 93, 91, 87, 83, 80, 77, 70, 65, 62, 56]
score1 = 40
for x in range(len(score)):  # 遍历出下标 range(len())
    if score1 > score[x]:   # 新的元素和 根据下标表示的元素,做比较,
        score.insert(x, score1)   # 新的元素比列表中某一个元素大的时候就插入进去
        break   # 只需要插入一次,所以break
else:
    score.append(score1)  # 循环结束都没找到,表示数据是最小的一个,直接添加到数组最后
print(score)

删 - 删除列表重点元素(也不会产生新的数据,只会改变个数)

del 列表[下标] - 删除列表中指定下标对应的元素

注意: 下标不能越界

tvs = ['回家的诱惑', '非自然死亡', '我的兄弟叫顺溜', '琅琊榜', '甄嬛传', '亮剑', '请回答1988']
del tvs[-1]
print(tvs)  # ['回家的诱惑', '非自然死亡', '我的兄弟叫顺溜', '琅琊榜', '甄嬛传', '亮剑']

列表.remove(元素) - 删除列表中指定的元素

如果需要删除的元素在列表中存在的多个,只会删除最前面的一个

如果需要删除一个不存在的元素,程序会报错

tvs = ['回家的诱惑', '非自然死亡', '琅琊榜', '我的兄弟叫顺溜', '琅琊榜', '甄嬛传', '亮剑', '琅琊榜', '请回答1988']
tvs.remove('琅琊榜')
print(tvs)

tvs.remove('吸血鬼日记')
print(tvs)  # ValueError: list.remove(x): x not in list 不存在list中

# 练习tvs中最后一个琅琊榜 (通过反向获取下标,删除)
for index in range(-1, -len(tvs)-1, -1):
    if tvs[index] == '琅琊榜':
        del tvs[index]
        break
print(tvs)

列表.pop() - 取出列表中最后一个元素, 并且返回

列表.pop(下标) - 取出列表中指定下标对应的元素, 并且返回

tvs = ['回家的诱惑', '非自然死亡', '我的兄弟叫顺溜', '琅琊榜', '甄嬛传', '亮剑', '请回答1988']
tvs.pop()
tvs.pop(0)

num = tvs.pop()  # 取出的元素可以返回
num2 = tvs.pop(1)
print(num, num2)

列表[下标] = 新值 - 修改列表中指定下标对应的元素

tvs = ['回家的诱惑', '非自然死亡', '我的兄弟叫顺溜', '琅琊榜', '甄嬛传', '亮剑', '请回答1988']
tvs[1] = '行尸走肉'
print(tvs)
# 练习:删除列表中所有小于60分的成绩

scores = [87, 34, 50, 23, 78, 99, 45, 23, 23, 76, 89, 30]
scores2 = []
for x in scores:  # 提取列表中小于60的数,保存在scores2中,
    if x < 60:
        scores2.append(x)
for y in scores2:  # 在scores中删除,scores2循环出来的y
    scores.remove(y)
print(scores)
#  或者
# 在删除之前对原列表中的数据备份,遍历备份数据,删除原数据
scores = [87, 34, 50, 23, 78, 99, 45, 23, 23, 76, 89, 30]
temp = scores[:]  # scores[:]  -  创建一个新的列表,新列表中的元素和 score一模一样
for s in temp:
    if s < 60:
        scores.remove(s)
print(scores)

作业

  1. 已知一个数字列表,求列表的中心元素
arr = [11, 21, 31, 41, 51, 24, 54]
if len(arr) == 0:
    print('列表为空')
elif len(arr) % 2:
    print(arr[(len(arr)-1)//2])
else:
    print(arr[(len(arr)//2)])
    print(arr[(len(arr)//2 - 1)])
  1. 已知一个数字列表,求所有元素和
arr = [11, 21, 31, 41, 51, 24, 54]
sum1 = 0
for x in arr:
    sum1 += x
print(sum1)
  1. 已知一个数字列表,输出所有奇数下标元素
arr = [11, 21, 31, 41, 51, 24, 54]
for index in range(len(arr)):
    if index % 2:
        print(arr[index])
  1. 已知一个数字列表,输出所有元素中,值为奇数的元素
arr = [11, 21, 31, 41, 51, 24, 54]
for x in arr:
    if x % 2:
        print(x)
  1. 已知一个数字列表,将所有元素乘二
arr = [1, 2, 3, 4]
for index in range(len(arr)):
    arr[index] *= 2
print(arr)
  1. 有一个长度是10的列表,数组内有10个人名,要求去掉重复的。
# 例如:names = ['张三', '李四', '大黄', '大黄', '张三', '张三', '张三'] -> names = ['张三', '李四', '大黄'] 
names = ['张三', '李四', '大黄', '大黄', '张三', '张三', '张三']
new_names = names[:]
for x in names:
    while True:
        if x in new_names:
            new_names.remove(x)
        else:
            new_names.append(x)
            break
print(new_names)
  1. 有两个列表A 和 B 使用列表C 来获取两个列表中的公共元素
A = [1, 'a', 4, 90]  
B = ['a', 8, 'j', 1]
C = []
if len(A) <= len(B):
    for x in A:
        if x in B:
            C.append(x)
else:
    for x in B:
        if x in A:
            C.append(x)
print(C)
  1. *有一个数字列表,获取这个列表中的最大值(注意,不能使用max函数)
nums = [19, 89, 90, 600, 1]
for x in nums:
    for y in nums:
        if x >= y:
            pass
        else:
            break
    else:
        max_nums = x
print(max_nums)
  1. *获取列表中出现次数最多的元素
nums = [1,2,3,1,5,2,1,3,7,3,3]
new_nums = nums[:]
list1 = []
for x in new_nums:
    nums.remove(x)
    if x not in nums:
        list1.append(x)
for _ in range(len(new_nums)-len(list1)):
    for x in list1:
        if x in new_nums:
            new_nums.remove(x)
        if len(new_nums) == 1:
            break
print(new_nums[0])