day5-列表作业

本文介绍了一系列针对Python列表的基本操作技巧,包括求列表中心元素、计算列表元素总和、筛选奇数下标或奇数值元素、元素翻倍、去除重复项、求平均分并排除极端值及找出列表交集等实用案例。

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

num = [2, 8, 9, 10, 3, 5]
if len(num) & 1:
    print(num[len(num) // 2])
else:
    print(num[len(num) // 2 - 1], num[len(num) // 2])

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

num = [2, 8, 9, 10, 3, 5]
num1 = 0
for x in num:
    num1 += x
print(num1)

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

num = [2, 8, 9, 10, 3, 5]
for x in range(1, len(num), 2):
    print(num[x])

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

num = [2, 8, 9, 10, 3, 5]
for x in num:
    if x & 1:
        print(num[x])

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

例如:nums = [1, 2, 3, 4] —> nums = [2, 4, 6, 8]

# 方法一:
num = [2, 8, 9, 10, 3, 5]
for x in range(len(num)):
    num[x] *= 2
print(num)
# 方法二:
num = [1, 2, 3, 4]
new_num = []
for x in num:
    new_num.append(x * 2)
print(new_num)
# 方法三:
new_num = [x*2 for x in num]
print(new_nums)

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

例如:names = [‘张三’, ‘李四’, ‘大黄’, ‘大黄’, ‘张三’, ‘张三’, ‘张三’] -> names = [‘张三’, ‘李四’, ‘大黄’]

# 方法一:
names = ['张三', '李四', '大黄', '大黄', '张三', '张三', '张三']
new_name = []
for x in names:
    if x not in new_name:
        new_name.append(x)
print(new_name)
# 方法二:
names = ['张三', '李四', '大黄', '大黄', '张三', '张三', '张三']
count = len(names)
for _ in range(count):
    x = names.pop()
    if x not in names:
        name.insert(0, x)
print(names)

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

num = [2, 8, 9, 10, 3, 5]
max1 = 0
min1 = 0
for x in range(len(num)):
    if num[max1] < num[x]:
        max1 = x
    if num[min1] > num[x]:
        min1 = x
print(num[max1])
print(num[min1])
del num[max1]
del num[min1]
num1 = 0
for x in range(len(num)):
    num1 += num[x]
num2 = num1 / len(num)
print(num2)
  

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

例如: A = [1, ‘a’, 4, 90] B = [‘a’, 8, ‘j’, 1] --> C = [1, ‘a’]

# 方法一:
a = [1, 'a', 4, 90]
b = ['a', 8, 'j', 1]
c = []
for x in range(len(a)):
    for y in range(len(b)):
        if a[x] == b[y]:
            c.append(a[x])
print(c)
# 方法二:
a = [1, 'a', 4, 90]
b = ['a', 8, 'j', 1]
c = []
for x in a:
    if x in b:
        c.append(x)
print(c)

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

例如: nums = [19, 89, 90, 600, 1] —> 600

nums = [19, 89, 90, 600, 1]
max = 0
for x in range(len(nums)):
    if nums[max] < nums[x]:
        max = x
print(nums[max])

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

例如:nums = [1, 2, 3,1,4,2,1,3,7,3,3] —> 打印:3



评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值