第1关:列表的增删改查

本关任务:编写一个好友名单管理的小程序。可以实现对名单的增删改查。

列表的增删改查 好友名单管理

#1.请在好友名单尾部添加一个好友'曾海洋'

#2.请在好友名单开头添加一个好友'胡波'

#3.请将首个王姓好友的名字修改为'王仁'。

#4.删除首个赵姓好友

#建立初始名单
nameList=eval(input())
############begin###############
#1.请在好友名单尾部添加一个好友'曾海洋'
nameList.append('曾海洋')
############end#############################begin############
#2.请在好友名单开头添加一个好友'胡波'
nameList.insert(0,'胡波')
##############end#########################begin###########
#3.请将首个王姓好友的名字修改为'王仁'。
for i in nameList:a=str(i)if '王'in a:#nameList.insert(nameList.index(a),'王仁')n=nameList.index(i)nameList[n] = '王仁'break
#############end#########################begin################
#4.删除首个赵姓好友
for l in nameList:b=str(l)if '赵'in b:nameList.remove(b)break
###########end#################
print(nameList)

第2关:列表数据的统计与排序

本关任务:对列表数据进行统计与排序。 请充分利用列表自带的函数来完成操作,以便简化程序的编写

列表的排序 对一个班的学生的数学成绩进行排序,并进行简单的统计。

scores=eval(input())#录入多名学生的成绩#########begin############
#1. 请找出最高分并输出
m=max(scores)
print(m)
##########end#######################begin###########
#2. 请找出最低分并输出
n=min(scores)
print(n)
###########end#######################begin############
#3. 请求出班级平均分并输出(保留4位小数)
a=sum(scores)/len(scores)
print('{:.4f}'.format(a))
###########end##########################begin###########
#4.对分数进行升序排序并输出排序后的结果
scores.sort()
print(scores)
############end############

第3关:列表索引切片

本关任务:熟练掌握列表的索引切片操作。 请充分利用列表自带的函数来完成任务,以便简化程序的编写。

列表索引切片 对学生成绩进行降序排序,输出前三名的成绩,以及后三名的成绩,以及去掉一个最高的去掉一个最低分之后的成绩均值。

#已录入的10名学生的成绩
scores=eval(input())#录入多名学生的成绩
##########begin###########
#1. 请对scores进行降序排序,并输出降序排列之后的结果
scores.sort(reverse=True)
print(scores)
##########end######################begin############
#2.请找出前三名的成绩,并按降序输出
l=scores[0:3:1]
print(l)
##########end#######################begin###########
#3. 请找出后三名的成绩,并按降序输出
i=scores[-3::1]
print(i)
###########end#######################begin############
#4.请求出去掉一个最高分以及去掉一个最低分之后的成绩均值,并输出该均值(保留4位小数)
del scores[0]
del scores[-1]
a=sum(scores)/len(scores)
print('{:.4f}'.format(a))
###########end##############

第4关:嵌套列表

本关任务:利用嵌套列表来存放一个矩阵,并进行相关的操作。

矩阵是指m行n列的数据,为简单起见,让所有输入矩阵数据的列数大于行数,即n>=m。下面以一个矩阵为例,讲解题目要求: 假设如下图所示的3行4列矩阵:

可以使用如下的列表嵌套: [[9, 15, 64, 28],[89, 93, 29, 8],[73, 0, 40, 36]]

第1题:求矩阵中所有数据的最大值,并输出该最大值

第2题:求出矩阵对角线元素(行号等于列号的元素)的和,并输出该和值

3题:将矩阵上三角元素(列号大于等于行号的元素)全变为0值, 并输出该矩阵

第4题:取出矩阵的最后两行,并输出这两行

第5题:删除矩阵的最后一行,并输出删除最后一行之后的矩阵

方法一:numpy库方法

import numpy as np#计算矩阵的库
global tmp2
global lll
tmp1=-655000000000000000000
row=eval(input())#矩阵行数
list2D=[]#嵌套列表,用来存放一个矩阵数据
for i in range(row):#得到每行数据列表temp=eval(input())lll=len(temp)-1tmp2=max(temp)if tmp2>tmp1:tmp1=tmp2list2D.append(temp)#第1题:请对矩阵list2D中的数据求最大值,并输出该最大值
print(np.max(list2D))
#第2题:求出矩阵对角线元素的和,并输出该和值num = 0
for i in range(row):for j in range(row):a = list2D[i]b = a[j]if i == j:num += b
print(num)
#第3题:将矩阵上三角元素全变为0值, 并输出该矩阵numpy.tril(m, k=0)
for i1 in range(row):    #hangfor j1 in range(row): #lieif j1>=i1:list2D[i1][j1]=0
for uu in range(0,row):list2D[uu][lll]=0if row==4:try:list2D[uu][4]=0list2D[uu][5]=0list2D[uu][6]=0list2D[uu][7]=0list2D[uu][8]=0except:pass
for u in range(row):print(list2D[u]) #第4题:取出矩阵的最后两行,并输出这两行
print(list2D[-2])
print(list2D[-1])#第5题:删除矩阵的最后一行,并输出删除最后一行之后的矩阵
a=list2D.pop(-1)
for X in range(row-1):print(list2D[X]) 

方法二:循环嵌套列表方法

row=eval(input())
list2D=[]
for i in range(row):temp=eval(input())list2D.append(temp)m_max=-1e50
for l in list2D:if max(l)>m_max:m_max=max(1)
print(m_max)s=0
for i in range(row):s+=list2D[i][i]
print(s)for i in range(row):for j in range(len(list2D[i])):if j>=i:list2D[i][j]=0
for x in list2D:print(x)for x in list2D[-2:]:print(x)del list2D[-1]
for x in list2D:print(x)      

第5关:列表综合应用

本关任务:列表的综合应用

根据提示,在右侧编辑器补充代码,完成程序的编写。

第一题:编程实现:在屏幕上输出杨辉三角形图形 例如 输入 6 输出结果为:

提示:每行数据就是一个单列表,多行数据构成列表的嵌套

方法一:

#列表综合案例1:输出杨辉三角形(列表的嵌套)
n = eval(input()) #num为杨辉三角的行数t=[]
print('[1]')
for i in range(n):r=[1]t.append(r)if i ==0 :continuefor j in range(i-1):r.append(t[i-1][j]+t[i-1][j+1])r.append(1)print(r)

方法一没有实现第一层的循环,故单独输出'[1]'

方法二:(最精简版)

lo=[]
for i in range(num):li=[]for j in range(i+1):li.append(1)#先用1表示出形状lo.append(li)
for i in range(2,num):
#for i in range(2,mum):#对最外层循环for j in range(1,i):lo[i][j]=lo[i-1][j-1]+lo[i-1][j]#第i行的第j个=上一行的前一个加上一行的这个
for i in range(num):print(lo[i])

第二题:约瑟夫问题

n个人按1,2,3,… ,n编号,并顺序围坐一圈。开始按照1,2,3,… ,m 报数,凡报到 m 的出列,直到所有人出列为止。 算法如下: 1)建立一个列表lb存放n个值 2)遍历该列表,从1开始计数,到第m个值将其从列表删除。然后继续从1开始计数,数到第m个值将其从列表删除。 3)以此类推,直到列表中没有元素为止 编写程序,输入人数n和序号m,输出出圈的序号。 测试输入: 6,4 预期输出: [4, 2, 1, 3, 6, 5]

方法一:(方便理解版)

#n代表总人数,m代表出圈间隔序号数
n,m=eval(input())                   #n代表总人数,m代表出圈间隔序号数
result=[]                           #出圈列表blist=list(range(1,n+1))
cal=0
while blist:tmp=blist.pop(0)                #取出第一个数cal+=1if cal==m:result=result+[(tmp)]cal=0                       #继续从1开始计数continueblist.append(tmp)               #将原来的第一个数放到列表最后if len(result)==n:              #所有人出圈breakprint("出圈列表:")
print (result)

方法二:(最精简版)

n,m=eval(input())
result=[]
ls=list(range(1,n+1))#实现闭环
for i in range(n):##出去n个人循环n次for j in range(m-1):#每次循环m个人ls.append(ls.pop(0))##第一个人出列result.append(ls.pop(0))##出列的人
print("出圈列表:")
print (result) 

三连一下呗。

Python语言基础-2.4列表(理)相关推荐

  1. 第二章-Python语言基础-2.4列表(理)(第一关)

    # -*- coding: utf-8 -*-"""Created on Sun Sep 6 17:25:27 2020@author: hyr列表的增删改查好友名单管理 ...

  2. 【python语言基础】疑难点整理2

    [python语言基础]疑难点整理1 第五章 在python语法中,循环体中的语句没有做限制,因此,可以是任何合法语句,当然也可以是循环语句.这样就形成了循环语句的嵌套. while循环语句和for循 ...

  3. 浅谈python语言_浅谈Python语言基础知识点!

    一.Python 语言的简述 Python语言是一种解释型.面向对象的编程语言,是一种开源语言. Python属于动态类定义语言,也是一种强调类型语言. 二.Python 语言的特点 1.简单.高级 ...

  4. python有哪些软件包用来考察变量之间的相关性_Python语言基础考察点:python语言基础常见考题(一)...

    一.python是静态还是动态类型?是强类型还是弱类型? 1.动态强类型语言(不少人误以为是弱类型) 不要傻傻分不清 2.动态还是静态指的是编译期还是运行期确定类型 3.强类型指的是不会发生隐式类型转 ...

  5. 《基于ArcGIS的Python编程秘笈(第2版)》——第1章 面向ArcGIS的Python语言基础

    本节书摘来自异步社区<基于ArcGIS的Python编程秘笈(第2版)>一书中的第1章,第1.1节,作者: [美]Eric Pimpler(派普勒) 更多章节内容可以访问云栖社区" ...

  6. python全套完整教程-Python语言基础50课 全套完整版(含doc版)

    Python 语言基础 50 课是一套新的简单的给新手小白Python入门教程,由于之前发布的Python学习项目Python-100-Days对初学者来说上手还是有一定难度,而且很多小伙伴希望能够有 ...

  7. python基础知识-Python语言基础知识总结

    本文主要向大家介绍了Python语言基础知识总结,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助. 可以简便的方法: (1)lambda x,y:x*y (2)list1 = lis ...

  8. MOOC —— Python语言基础与应用 by 北京大学 第九章 高级扩展模块

    第九章 高级扩展模块 49.例外处理 50.推导式 51.生成器函数 generator object 52.上机练习:生成器 53.图像处理库 54.Web服务框架 55.网络爬虫 56.数据可视化 ...

  9. python课程教学大纲-《Python语言基础》课程教学大纲

    <Python语言基础>课程教学大纲 课程名称:Python语言基础课程类别:专业选修课 适用专业:电子信息工程考核方式:考查 总学时.学分:32学时1.5学分 其中讲授16学时,实验10 ...

最新文章

  1. Codeforces Round #520 (Div. 2)
  2. 14-python基础3-数据类型
  3. Servlet 3.0概述
  4. Flume在企业大数据仓库架构中位置及功能
  5. ArrayList动态数组对象 c# 1231
  6. 【解题报告】【HODJ1231】【最大子序列和】最大连续子序列
  7. Collectors.toMap报错 :Duplicate key
  8. 哲学家进餐问题解决方法
  9. [神经网络]计算量GFLOPS和参数量#Params以及感受野计算
  10. 实验三 网际协议IP 实验报告
  11. 沪牌每月价格预测模型
  12. Altium Designer 18中的Data Management–Device Sheets
  13. 认识一下身边的互联网---经典互联网书籍阅读总结
  14. CSS常用英语词汇大全
  15. Shell脚本循环语句及exit、continue和break用法
  16. UDP可靠性传输协议(QUIC)
  17. UPnP的功能和使用
  18. 最完整VC++6.0安装教程、windows命令行cl编译命令配置、cl编译命令使用、以及整套安装所需的附件
  19. 河南科技大学计算机信息安全技术考试,河南科技大学军事理论试题4
  20. JAVA课程设计——小学数学练习

热门文章

  1. 关于SQL中的ROWNUM问题
  2. 微信小程序学习第二章--小试牛刀(写一个页面吧)
  3. 记录异常——Exception in thread “main“ java.lang.UnsupportedClassVersionError: com/zk/test/test has been
  4. python3 (3)---- 去掉字符串中的标点符号
  5. 性价比非常高的华为云云主机
  6. 物理机-ubuntu系统搭建+全局美化
  7. 亚马逊笔试题目_一道亚马逊的在线笔试题
  8. Android头像选择(手机和相册)
  9. wordDrawer:轻量级桌面词典应用软件
  10. 数据分析方法-RFM用户价值分层模型