Day5_列表的增删改及操作

这篇博客详细介绍了Python列表的增删改操作,包括使用append和insert添加元素,用del、remove和pop删除元素,以及如何修改列表中指定下标元素。还提到了列表的加法和乘法运算,以及一些常见的列表操作如判断元素存在性、求元素和、处理奇数下标元素等。作业部分包含了多个基于列表的操作题目。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Day5_列表的增删改

总结:

列表的增删改

1.增 - 添加元素

  • 列表.append(元素) - 在列表的最后添加指定元素。
  • 列表.insert(下标,元素) - 在列表的指定下标所在的位置前插入指定元素。

2.删 - 删除列表中的元素

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

    注意:下标不能越界! 越界程序会报错。

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

    注意:如果要删除的元素在列表中有多个,只删除最前面的一个;

    ​ 如果要删除的元素不存在,程序会报错。

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

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

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

​ 补充 :如果直接用一个列表变量给另一个变量赋值,赋的是原变量中数据的地址。

列表相关操作

1.列表的加法和乘法运算:

list1 = [10,20]
list2 = [30,40]
print(list2+list1)                   #[10,20,30,40]
print(list2*3)                       #[30,40,30,40,30,40]
  1. in 和not in
  • 元素 in 列表 - 判断列表中是否存在指定元素。
  • 元素 not in 列表 - 判断列表中是否不存在指定元素。
print(10 in [10,20,30])                   #True
print([10,20] in [10,20,30])              #False
print([10,20] in [[10,20],30])            #True

作业:

1.已知一个数字列表,求列表中心元素。

nums = [11,21,31,41,24,31,54]
if len(nums) == 0:
    print('该列表是一个空列表!')
elif len(nums) % 2:
    print(nums[len(nums)//2])
else:
    print(nums[len(nums)//2])
    print(nums[len(nums) // 2 -1])

2.已知一个数字列表,求所有元素和。

nums = [11,21,31,41,24,31,54]
# 方法一
sum1 = 0
for x in nums:
    sum1 += x
print(sum1)
#方法二
sum1 = 0
for index in range(len(nums)):
    sum1 += nums[index]
print(sum1)

3.已知一个数字列表,输出所有奇数下标元素。

nums = [11,21,31,41,24,31,54]
for index in range(len(nums)):
    if index % 2:
        print(nums[index])

4.已知一个数字列表,输出所有元素中,值为奇数的元素。

nums = [11,21,31,41,24,31,54]
for x in nums:
    if x % 2:
        print(x)

5.已知一个数字列表,将所有元素乘二。

#例如:nums = [1, 2, 3, 4]  —>  nums = [2, 4, 6, 8]
nums = [1, 2, 3, 4]
for index in range(len(nums)):
    nums[index] *= 2
print(nums)

6.有一个长度是10的列表,数组内有10个人名,要求去掉重复的。

#例如:names = ['张三', '李四', '大黄', '大黄', '张三', '张三', '张三'] -> names = ['张三', '李四', '大黄']
names = ['张三', '李四', '大黄', '大黄', '张三', '张三', '张三']
names_new = names[:]
for x in names:
    while True:
        if x in names_new:
            names_new.remove(x)
        else:
            names_new.append(x)
            break
print(names_new)

7.用一个列表来保存一个节目的所有分数,求平均分数(去掉一个最高分,去掉一个最低分,求最后得分) 。

# 方法一
scores = [92,58,64,75,84,79,69,88,86,97]
max1 = min1 = scores[0]
sum1 = 0
count = 0
for x in scores:
    if x > max1:
        max1 = x
    if x < min1:
        min1 = x
    sum1 += x
    count += 1
print('平均分:',(sum1-max1-min1)/(count-2))
#方法二
scores = [92,58,64,75,84,79,69,88,86,97]
num = min(scores) + max(scores)
print(num)
sum1 = 0
for x in scores:
    sum1 += x
print((sum1 - num)/(len(scores)-2))

8.有两个列表A和B,使用列表C来获取两个列表中公共的元素

A = [1, 'a', 4, 90]
B = [8, 'j', 1,'a']
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)

9.*有一个数字列表,获取这个列表中的最大值.(注意: 不能使用max函数。

#例如: nums = [19, 89, 90, 600, 1]   —>  600
nums = [19, 89, 90, 600, 1]
max_num = nums[0]
	for x in nums:
        if x in 
    else:
        nums_max = x
print(nums_max)

10.*获取列表中出现次数最多的元素。

# 例如:nums = [1, 2, 3,1,4,2,1,3,7,3,3]   —> 打印:3 
# 如下代码只能取出出现次数最多的一个元素,不能取出多个元素。
nums = [1, 2, 3, 1, 4, 2, 1, 3, 7, 3, 3]
nums_new = nums[:]
list1 = []
for x in nums_new:
    nums.remove(x)
    if x not in nums:
        list1.append(x)
for _ in range(len(nums_new)-len(list1)):
    for x in list1:
        if x in nums_new:
            nums_new.remove(x)
        if len(nums_new) == 1:
            break
print(nums_new[0])
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值