变量类型之列表测试题

基础

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

    • 例如:[1,2,3] -> 3;[1,2,3,4] -> 2,3

      list1 = [1, 2, 3]
      # list2 = [1, 2, 3, 4]
      result = len(list1):
      if i % 2 == 0:left = result // 2 - 1right = result // 2print(list1[left], list1[right])
      else:print(list1[result // 2])
      
  2. 不使用sum,已知一个数字列表,求所有元素和。

    list2 = [1, 2, 3, 4, 5]
    num = 0
    for i in range(len(list2))if i < 5:num += list2[i]
    print(f'元素的和为{num}')
    
  3. 已知一个数字列表,输出所有奇数下标元素。

    list3 = [1,2,3,4,5,6,7]
    for i in range(len(list3)):if i % 2 != 0:print(list3[i])
    
  4. 已知一个数字列表,在原列表基础上将所有元素乘二。

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

      nums = [1, 2, 3, 4]
      list4 = [i * 2 for i in nums]
      print(list4)
      
  5. 有两个列表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 = [i for i in A if i in B]
      print(C)
      

中等

  1. 有一个数字列表,获取这个列表中的最大值.(注意: 不能使用max函数)。
  • 例如: nums = [19, 89, 90, 600, 1] —> 600

    nums = [19, 89, 90, 600, 1]
    max_ = nums[0]
    for i in nums[1:]:if max_ < i:max_ = i
    print(max_)
    
  1. 利用列表推到式将列表中的整数提取出来。
  • 例如:[True, 17, “hello”, “bye”, 98, 34, 21] — [17, 98, 34, 21]

    nums1 = [True, 17, "hello", "bye", 98, 34, 21]
    new_str1 = [i for i in nums1 if type(i) == int]
    print(new_str1)
    
  1. 利用列表推到是将列表中的数字提取出来。

    • 例如:[True, 17, “hello”, “bye”, 98, 34, 21,3.3,4.5] — [17, 98, 34, 21,3.3,4.5]
    nums2 = [True, 17, "hello", "bye", 98, 34, 21, 3.3, 4.5]
    result1 = [i for i in nums2 if type(i) in [int,float]]
    print(result1)
    
  2. 用一个列表来保存一个节目的所有分数,求平均分数(去掉一个最高分,去掉一个最低分,求最后得分)

    • score = [10,20,50,70,99,80,45,30]。
    score = [10, 20, 50, 70, 99, 80, 45, 30 ]
    a = max(score)
    b = min(score)
    result2 = [i for i in score if i not in [a, b]]
    # round(变量,保留小数位数i)
    print(round(sum(score) / len(score),2))
    
  3. 获取列表中出现次数最多的元素。

  • 例如:nums = [1, 2, 3,1,4,2,1,3,7,3,3],打印[3];nums = [1,2,2,1,3],打印[1,2]

    # 第一种方法
    numsl = [1, 2, 3, 2, 2, 6, 7, 8, ]
    # 使用集合去重,减少for循环遍历次数,提高效率
    s1 = set(numsl)
    # max变量用来判断出现次数,content变量用来保存该次数是哪个元素
    max = 0
    content = []
    for i in s1:if max < numsl.count(i):max = numsl.count(i)content.clear()content.append(i)elif max == numsl.count(i):content.append(i)
    print(f'出现次数最多的元素是{content}')# 第二种方法:
    maxCountElement = []
    # 设置一个专门比较次数大小的变量
    count = 0
    nums = [1, 2, 3, 1, 4, 2, 1, 3, 7, 3, 3]
    # nums = [1,2,1,2,3]
    for i in nums:if nums.count(i) > count:# 先清空列表,必须出现多个值重复的元素。maxCountElement.clear()# 将出现次数最多变量的值记录下来,添加到新列表中。count = nums.count(i)maxCountElement.append(i)# 统计多个元素重复次数一样的。elif nums.count(i) == count and i not in maxCountElement:maxCountElement.append(i)
    print(maxCountElement)
    

地狱

  1. 使用列表推导式在1-100范围内随机生成包含10个数字的列表

    import randomresult3 = [random.randint(1, 100) for _ in range(10)]
    print(result3)
    
  2. 不允许使用sort、sorted等方法,对上述列表排序

    result3.reverse()
    print(result3)
    
  3. 分别使用三种方法对列表去重。

  • 例如:name_list = [‘张三’, ‘李四’, ‘王五’, ‘李四’, ‘王五’, ‘王五’, ‘张三’],结果:[‘张三’,‘李四’,‘王五’]

      # 第一种方法name_list = ['张三', '李四', '王五', '李四', '王五', '王五', '张三']list6 = []for i in name_list:if i not in list6:list6.append(i)print(list6)# 第二种方法set1 = set(name_list)new_list1 = list(set1)print(new_list1)# 第三种方法# 根据下标来查找列表里出现次数最多的元素,删除掉。i = 0while i < len(name_list):if name_list.count(name_list[i]) > 1:del name_list[i]else:i += 1print(name_list)
    
  1. 某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。

    rom sys import stdouta = int(input('input a number:\n'))
    aa = []
    aa.append(a % 10)
    aa.append(a % 100 / 10)
    aa.append(a % 1000 / 100)
    aa.append(a / 1000)
    for i in range(4):aa[i] += 5aa[i] %= 10
    for i in range(2):aa[i],aa[3 - i] = aa[3 - i],aa[i]
    for i in range(3,-1,-1):stdout.write(str(aa[i]))
    
  2. 有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。

    n=int(input("请输入总人数:"))
    m=int(input("请规定报到数字几的人退出圈子:"))
    circle=[]
    for i in range(1,n+1):circle.append(i)
    num=1
    while len(circle)!=1:circle.append(circle.pop(0)) #把已报数的人取出放到队尾,以此实现围成圈循环往复num+=1if num==m:del circle[0] # 把报到规定数字的人踢出圈子num=1 # 重新从1开始报数
    print("最后留下的人是原来第{}号的人".format(*circle))
    

列表经典测试题(有答案版)相关推荐

  1. 列表经典测试题(无答案版)

    习题目录 变量类型之列表测试题 基础 中等 地狱 变量类型之列表测试题 基础 已知一个数字列表,求列表中心元素. 例如:[1,2,3] -> 3:[1,2,3,4] -> 2,3 不使用s ...

  2. 计算机高级培训测试题答案,计算机经典测试题及的答案.doc

    计算机经典测试题及的答案 注:红色标识为答案 一.计算机应用基础选择题 1.第二代计算机采用()的电子逻辑元件. A.集成电路 B.真空管 C.晶体管 D.超大规模集成电路 2.世界上第一台电子计算机 ...

  3. mooc数据结构与算法python版期末测验_中国大学MOOC(慕课)_数据结构与算法Python版_测试题及答案...

    中国大学MOOC(慕课)_数据结构与算法Python版_测试题及答案 更多相关问题 采用fopen()函数打开文件,支持文件读取的参数有: [简答题]简单阐述高分子材料热-机械特征及成型加工的关系,并 ...

  4. 鱼c论坛 python课后题pdf,我与python的第一次亲密接触_课后测试题及答案.pdf

    我与python的第一次亲密接触_课后测试题及答案.pdf 还剩 10页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,喜欢就下载吧,价低环保! 内容要点: 2015/8/19 第001讲: ...

  5. 《Adobe Photoshop CS6中文版经典教程(彩色版)》—第1课1.7节检查更新

    本节书摘来自异步社区<Adobe Photoshop CS6中文版经典教程(彩色版)>一书中的第1课1.7节检查更新,作者[美]Adobe公司,更多章节内容可以访问云栖社区"异步 ...

  6. 《Adobe Premiere Pro CC经典教程(彩色版)》——2.2 建立项目

    本节书摘来自异步社区<Adobe Premiere Pro CC经典教程(彩色版)>一书中的第2课,第2.2节,作者 [英国]Maxim Jago(马克西姆 亚戈),译者 陈昕昕,郭光伟 ...

  7. 《Adobe Illustrator CS6中文版经典教程(彩色版)》—第1课1.8节使用面板菜单

    本节书摘来自异步社区<Adobe Illustrator CS6中文版经典教程(彩色版)>一书中的第1课1.8节使用面板菜单,作者[美]Adobe公司,更多章节内容可以访问云栖社区&quo ...

  8. java期末考试2013及答案_java笔试经典(题及答案)2013.doc

    java笔试经典(题及答案)2013.doc Java笔试经典(基础部分及答案和分析)1.一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制?7答:可以包括多个 ...

  9. 计算机管理员初级试题及答案,计算机管理员测试题及答案.doc

    计算机管理员测试题及答案 请写出 568A 与 568B的线序答案: 568A的排线顺序从左到右依次为:白绿.绿.白橙.蓝.白蓝.橙.白棕.棕. 568B则为:白橙.橙.白绿.蓝.白蓝.绿.白棕.棕. ...

最新文章

  1. python array 语法_Python基本语法
  2. 打印HotSpot VM采用自动优化参数
  3. flex 各组件对应的样式属性2
  4. 国科大prml-往年习题
  5. 机器视觉开源代码集合(转载)
  6. 欧拉函数之和(51nod 1239)
  7. 对称加密算法和非对称加密算法速度对比
  8. 数学建模系列-优化模型---(一)规划模型
  9. 浙大计算机考研分数线2016,2016浙江大学考研复试分数线
  10. c#学习笔记---BackgroundWorker 详解
  11. 生成验证码并判断用户是否输入正确
  12. performing vcs refresh卡住不动解决方法
  13. Intel 至强E5/E7 V4 CPU与至强可扩展CPU性能对比表
  14. codeforces1292C Xenon‘s Attack on the Gangs
  15. 第2次作业:微信案例分析
  16. 修改const指针所指向的值
  17. 蓝牙室内定位,SOC芯片NRF52832
  18. 展示和隐藏后缀名操作
  19. OTA本质与实现流程分析
  20. 【程序人生】那些争议最大的编程观点

热门文章

  1. 鸿蒙智慧屏什么时候发货,荣耀智慧屏开售送货超快 从下单到送达耗时8分钟
  2. purge mysql_MySQL:Innodb purge线程略解
  3. 柬埔寨外资准入法律及政策简介
  4. 高德地图自定义创建地图
  5. NDK开发使用addr2line定位到错误代码行
  6. Ubuntu 20.04 保姆级安装教程
  7. 错误记录 (误用 rmdir /s /q .)
  8. *** PAC模式和全局模式的区别
  9. vscode 使用技巧、快捷键
  10. 神策数据:5 类数据,洞察游戏的秘密