头歌实践教学平台——Python程序设计之序列导学

目录

 元组自学检测

元组与列表主要区别        C

创建元组        A

元组操作        B

连接两个元组        A

元素的个数        D

一个元素的元组        BC

切片        AD

哪些类型的元素        B

是否存在于元组        C

第一次出现的索引        AB

列表排序自学检测

升序排序        D

降序排序        D

列表的排序副本        B

根据元素长度排序        D

排序不区分大小写        D

排序的关键字        D

稳定排序        C

根据对象的属性进行排序        D

多个排序关键字        D

None 值        D

列表自学引导

输入数据创建列表

计算每位选手的成绩

去除一个最高分和一个最低分

计算中位数成绩

去除弃权评委成绩

将平均成绩附加到列表末尾

读文件到二维列表

二维列表数据分析

成绩排序

列表基本操作自学检测

创建一个空列表        D

添加一个新元素        B

在末尾添加数字        A

删除指定的元素        B

更改元素的值        A

合并两个列表       D 

插入一个元素        A

索引        A

复制一个列表        D

删除最后一个元素        A

列表推导式自学检测

基本语法        A

选择偶数        A

同时使用 if 和 else        A

创建一个长度列表        A

用途        A

嵌套        C

每个元素的平方        D

过滤        A

多个 for 循环        A

组合成元组        C

如果此文章对你有所帮助,麻烦点个赞,谢谢~~~

点赞加关注,追新不迷路~~~


元组自学检测

元组与列表主要区别        C


创建元组        A


元组操作        B


连接两个元组        A


元素的个数        D


一个元素的元组        BC


切片        AD


哪些类型的元素        B


是否存在于元组        C


第一次出现的索引        AB

列表排序自学检测

升序排序        D


降序排序        D

列表的排序副本        B
 

根据元素长度排序        D
 

排序不区分大小写        D
 

排序的关键字        D
 

稳定排序        C
 

根据对象的属性进行排序        D
 

多个排序关键字        D
 

None 值        D

列表自学引导

输入数据创建列表

score_ls = []
for i in range(10):
    a = float(input())
    score_ls.append(a)  
print(score_ls)


计算每位选手的成绩

score_ls = []
for i in range(10):
    a = float(input())
    score_ls.append(a)
print(score_ls)
print(f'最高分{max(score_ls):.3f},最低分{min(score_ls):.3f},平均分{sum(score_ls) / len(score_ls):.3f}')


去除一个最高分和一个最低分

score_ls = []
for i in range(10):
    a = float(input())
    score_ls.append(a)  
print(score_ls)
score_ls.remove(max(score_ls))
score_ls.remove(min(score_ls))
print(score_ls)
print(f'最高分{max(score_ls):.3f},最低分{min(score_ls):.3f},平均分{sum(score_ls) / len(score_ls):.3f}')


计算中位数成绩

score_ls = []
for i in range(10):
    a = float(input())
    score_ls.append(a)  
print(score_ls)
score_ls.remove(max(score_ls))
score_ls.remove(min(score_ls))
score_ls.sort() 
print(score_ls)
print(f'去掉最高分和最低分后,中位数成绩为:{(score_ls[len(score_ls)//2]+score_ls[len(score_ls)//2-1])/2:.3f}')


去除弃权评委成绩

score_ls = []
for i in range(10):
    a = input()
    score_ls.append(a) 
print(score_ls)
while '' in score_ls:
        score_ls.remove('')
print(score_ls)
score_ls = list(map(float, score_ls))
score_ls.remove(max(score_ls))
score_ls.remove(min(score_ls))
print(score_ls) 
print(f'{max(score_ls):.3f}, {min(score_ls):.3f}, {sum(score_ls) / len(score_ls):.3f}')
 


将平均成绩附加到列表末尾

score_ls = []
for i in range(10):
    a = input()
    score_ls.append(a) 
print(score_ls)
while '' in score_ls:
        score_ls.remove('')
score = list(map(str, score_ls))
score_ls = list(map(float, score_ls))
score_ls.remove(max(score_ls))
score_ls.remove(min(score_ls))
avg_score = sum(map(float, score_ls))/len(score_ls) 
score.append(str(round(avg_score, 2)))
print(score) 


读文件到二维列表

def file_to_lst(file,n):
    list1 = []
    with open(file) as fr:  
        for i in range(n):
            score_ls = fr.readline().strip()
            score_ls = score_ls.split(',')
            list1.append(score_ls)
        print(list1)
            
if __name__ == '__main__':
    filename = '/data/bigfiles/mark_score.csv'
    n = int(input())
    file_to_lst(filename,n)


二维列表数据分析

def file_to_lst(file, n):
    """将文件名变量file指向的文件中的用逗号分隔的数据转为二维列表"""
    list1 = []
    with open(file) as fr:  # 创建文件对象
        for i in range(n):
            score_ls = fr.readline().strip()
            score_ls = score_ls.split(',')
            list1.append(score_ls)
        return list1    
 
if __name__ == '__main__':
    filename = '/data/bigfiles/mark_score.csv'
    n = int(input())
    list2=[]
    for lst in file_to_lst(filename, n):  # 遍历二维列表,lst为子列表
        while '' in lst:  # 循环判定子列表中是否还有空字符串
            lst.remove('')  # 移除子列表中的空字符串
        lst = list(map(float, lst))  # 当前子列表转浮点数
        lst.remove(max(lst))
        lst.remove(min(lst))
        avg_score = sum(map(float, lst))/len(lst) 
        lst.append(float(round(avg_score, 2)))
        list2.append(lst)
    print(list2)


成绩排序

def file_to_lst(file):
    with open(file) as fr:
        score_ls = [line.strip().split(',') for line in fr]
    return score_ls
 
def del_null_string(score_ls):
    score_ls_float = []
    for lst in score_ls:
        while '' in lst:
            lst.remove('')
        lst = list(map(float,lst))
        score_ls_float.append(lst)
    return score_ls_float
 
def add_avg(score_ls_float):
    for i in range(len(score_ls_float)):
        score_ls_float[i].remove(max(score_ls_float[i]))
        score_ls_float[i].remove(min(score_ls_float[i]))
        avg = sum(score_ls_float[i]) / len(score_ls_float[i])
        score_ls_float[i].append(round(avg,2))
    return score_ls_float
 
if __name__ == '__main__':
    filename = '/data/bigfiles/mark_score.csv'
    n = int(input())
    score_lst = file_to_lst(filename)
    score_lst_f = del_null_string(score_lst)
    score_avg = add_avg(score_lst_f)
    print(sorted(score_avg, key=lambda x: (x[-1],-x[-2]),reverse=True)[:n])

列表基本操作自学检测

创建一个空列表        D
 

添加一个新元素        B
 

在末尾添加数字        A
 

删除指定的元素        B
 

更改元素的值        A
 

合并两个列表       D 
 

插入一个元素        A
 

索引        A
 

复制一个列表        D
 

删除最后一个元素        A

列表推导式自学检测

基本语法        A
 

选择偶数        A
 

同时使用 if 和 else        A
 

创建一个长度列表        A
 

用途        A
 

嵌套        C
 

每个元素的平方        D
 

过滤        A
 

多个 for 循环        A
 

组合成元组        C

如果此文章对你有所帮助,麻烦点个赞,谢谢~~~

点赞加关注,追新不迷路~~~

  • 13
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

萌新发文啦~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值