Pycharm(十二)列表练习题

news2025/5/15 7:43:32

一、门和钥匙

        小X在一片大陆上探险,有一天他发现了一个洞穴,洞穴里面有n道门, 打开每道门都需要对应的钥匙,编号为i的钥匙能用于打开第i道门, 而且只有在打开了第i(i>1)道门之后,才能打开第i+1道门, 一开始只能打开第1道门。幸运的是,小X在外面探索的途中, 每天都能发现一把能打开这n道门中其中一道门的钥匙,每天找完钥匙后他都会去打开所有能打开的门。 现在给出他每天找到的钥匙编号,请问每道门分别在哪一天被打开。
输入示例:
请输入门的数量: 6
请输入每天找到的钥匙 5 6 1 3 2 4
输出示例:
[3,5,5,6,6,6]
代码:
n=eval(input('请输入门的数量:'))
key_list=[]
solve_list=[]
max_day=1
for i in range(1,n+1):
    key_num=eval(input(f'请输入第{i}天找到的钥匙:'))
    key_list.append(key_num)
for i in range(1,n+1):#遍历天数
    for j in range(len(key_list)):#遍历钥匙
        if i==key_list[j]:
            max_day=max(max_day,j+1)
            solve_list.append(max_day)
            break
print(f'每道门分别在{solve_list}打开')

二、删除列表中的指定元素

需求: 键盘录入一个字符串,并添加到列表中,输入end结束录入,然后删除列表中所有的cc字符串, 然后按照字典序对其元素进行升序排列。

给出4种解法:

方式一:根据索引删除,正向遍历

细节:正向删除元素之后,索引-1

print('方式1.根据索引删除,正向遍历:')
print('-'*30)
word_list=['bb','aa','cc','cc','cc','','dd','cc']
print(f'删除前的结果:{word_list}')
i=0
while i<len(word_list):
    if word_list[i]=='cc':
        # del word_list[i]
        word_list.pop(i)
        i-=1  #细节:删除元素后索引要-1
    i+=1
word_list.sort()
print(f'删除后的结果:{word_list}')
print('*'*30)

方式二:根据索引删除,逆向遍历,逆向遍历不会改变前一个元素的索引,只需要正常遍历一遍即可。

代码:

#方式2.根据索引删除,逆向遍历
print('方式2.根据索引删除,逆向遍历:')
word_list=['bb','aa','cc','cc','cc','','dd','cc']
print(f'删除前的结果:{word_list}')
n=len(word_list)-1
while n>=0:
    if word_list[n]=='cc':
        word_list.pop(n)
    n-=1 #不会影响前边元素的索引
word_list.sort()
print(f'删除后的结果:{word_list}')
print('*'*30)

方式3:列表解析式

#方式3.列表推导式
print('方式3.列表推导式:')
word_list=['bb','aa','cc','cc','cc','','dd','cc']
print(f'删除前的结果:{word_list}')
word_list=[i for i in word_list if i!='cc']
#3.打印结果
word_list.sort()
print(f'删除后的结果:{word_list}')
print('*'*30)

方式4:filter过滤器+匿名函数

#方式4:filter(过滤规则,要操作的容器对象)函数
print('方式4.过滤器:')
word_list=['bb','aa','cc','cc','cc','','dd','cc']
word_list=list(filter(lambda word:word!='cc',word_list))
word_list.sort()
print(f'删除后的结果:{word_list}')

运行结果如下:

三、约瑟夫环

#约瑟夫环
#1.提示用户录入游戏人数
n=eval(input('请输入游戏人数:'))
#2.生成初始列表
lst=[i for i in range(1,n+1)]
i=0
while len(lst)!=1:
    i=(i+2)%len(lst)
    lst.pop(i)
print(lst)

四、列表元素去重

需求:去掉列表中的重复元素,只保留一个值。

思路1:列表->集合->列表

代码:

#方式1.
list1=['aa','bb','cc','aa','cc','bb','bb']
set1=set(list1)
list2=list(set1)
#打印去重后的结果
print(list2)

思路2.定义一个空列表用于保留list1中唯一的元素值,not in

#方式2.not in
lst2=[]
for k in list1:
    if k not in lst2:
        lst2.append(k)
print(lst2)

运行结果:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2328464.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

集合与容器:List、HashMap(II)

一、ArrayList 是集合框架中最核心的动态数组实现&#xff0c;高频使用的容器之一。 1. 核心数据结构 基于数组实现&#xff0c;维护elementData数组存储元素&#xff1a; transient修饰的elementData不会被默认序列化&#xff08;通过自定义序列化逻辑优化存储&#xff09;…

《AI大模型应知应会100篇》第3篇:大模型的能力边界:它能做什么,不能做什么

第3篇&#xff1a;大模型的能力边界&#xff1a;它能做什么&#xff0c;不能做什么 摘要 在人工智能飞速发展的今天&#xff0c;大语言模型&#xff08;LLM&#xff09;已经成为许多领域的核心技术。然而&#xff0c;尽管它们展现出了惊人的能力&#xff0c;但也有明显的局限性…

小程序API —— 58 自定义组件 - 创建 - 注册 - 使用组件

目录 1. 基本介绍2. 全局组件3. 页面组件 1. 基本介绍 小程序目前已经支持组件化开发&#xff0c;可以将页面中的功能模块抽取成自定义组件&#xff0c;以便在不同的页面中重复使用&#xff1b;也可以将复杂的页面拆分成多个低耦合的模块&#xff0c;有助于代码维护&#xff1…

前端页面鼠标移动监控(鼠标运动、鼠标监控)鼠标节流处理、throttle、限制触发频率(setTimeout、clearInterval)

文章目录 使用lodashjs库手动实现节流&#xff08;通过判断之前设定的定时器setTimeout是否存在&#xff09; 使用lodashjs库 <!DOCTYPE html> <html lang"zh-CN"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Com…

在 Android Studio 中运行安卓应用到 MuMu 模拟器

一、准备工作 1、​​确保 MuMu 模拟器已正确安装并启动​​ 从官网下载安装最新版 MuMu 模拟器。启动后&#xff0c;建议在设置中调整性能参数&#xff08;如 CPU 核心数和内存分配&#xff09;&#xff0c;以保证流畅运行。 2、​​配置 Android Studio 环境​&#xff08;按…

【JavaEE】网络原理详解

1.❤️❤️前言~&#x1f973;&#x1f389;&#x1f389;&#x1f389; Hello, Hello~ 亲爱的朋友们&#x1f44b;&#x1f44b;&#xff0c;这里是E绵绵呀✍️✍️。 如果你喜欢这篇文章&#xff0c;请别吝啬你的点赞❤️❤️和收藏&#x1f4d6;&#x1f4d6;。如果你对我的…

NOIP2013提高组.华容道

题目 509. 华容道 算法标签: 搜索, b f s bfs bfs, s p f a spfa spfa 思路 不难发现, 在人移动的过程中, 箱子是不动的, 从当前位置到下一个箱子旁边的位置不会移动箱子, 可以预处理出人在每个位置到其他位置的距离预处理, 从某一个状态出发, 走到另一个状态的最短路使…

政安晨【超级AI工作流】—— 基于COZE探索有趣的主题互动问答工作流(同宇宙儿童提问机)

政安晨的个人主页&#xff1a;政安晨 欢迎 &#x1f44d;点赞✍评论⭐收藏 希望政安晨的博客能够对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff01; 本例&#xff0c;我们将从零展示如何创建一款专门针对儿童对某项主题进行问答的对话流智能体…

Derivatives and Differentiation (导数和微分)

Derivatives and Differentiation {导数和微分} 1. Derivatives and Differentiation (导数和微分)1.1. Visualization Utilities 2. Chain Rule (链式法则)3. DiscussionReferences For a long time, how to calculate the area of a circle remained a mystery. Then, in Anc…

P17_ResNeXt-50

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 一、模型结构 ResNeXt-50由多个残差块&#xff08;Residual Block&#xff09;组成&#xff0c;每个残差块包含三个卷积层。以下是模型的主要结构&#xff1…

Ubuntu上离线安装ELK(Elasticsearch、Logstash、Kibana)

在 Ubuntu 上离线安装 ELK(Elasticsearch、Logstash、Kibana)的完整步骤如下: 一.安装验证 二.安装步骤 1. 在联网机器上准备离线包 (1) 安装依赖工具 #联网机器 sudo apt update sudo apt install apt-rdepends wget(2) 下载 ELK 的 .deb 安装包 #创建目录将安装包下载…

PyCharm 下载与安装教程:从零开始搭建你的 Python 开发环境

PyCharm 是一款专为 Python 开发设计的集成开发环境&#xff08;IDE&#xff09;&#xff0c;它提供了强大的代码编辑、调试、版本控制等功能&#xff0c;是 Python 开发者的必备工具之一。如果你是初学者&#xff0c;或者正在寻找一款高效的开发工具&#xff0c;这篇文章将帮助…

TSMaster在新能源汽车研发测试中的硬核应用指南

——从仿真到标定&#xff0c;全面赋能智能汽车开发 引言&#xff1a;新能源汽车测试的挑战与TSMaster的破局之道 新能源汽车的快速发展对研发测试提出了更高要求&#xff1a;复杂的电控系统、高实时性通信需求、多域融合的验证场景&#xff0c;以及快速迭代的开发周期。传统测…

黑白彩色相机成像原理

文章目录 黑白相机成像原理彩色相机成像原理 黑白相机成像原理 参考&#xff1a;B站优致谱视觉 光线聚焦&#xff1a;相机镜头将外界景物反射的光线聚焦到相机内部的成像平面上。光电转换&#xff1a;成像平面上通常是图像传感器&#xff0c;黑白相机常用的是CCD&#xff08…

室内指路机器人是否支持环境监测功能?

并非所有室内指路机器人都具备环境监测功能。那些支持环境监测的室内指路机器人&#xff0c;往往在设计上进行了针对性的优化&#xff0c;搭载了一系列先进且实用的传感器。温湿度传感器犹如一位敏锐的 “温度湿度侦探”&#xff0c;时刻精准地监测室内温度与湿度&#xff0c;为…

基于DrissionPage的Taptap热门游戏数据爬虫实战:从Requests到现代爬虫框架的迁移指南(含完整代码复制)

目录 ​编辑 一、项目重构背景与技术选型 1.1 原代码问题分析 1.2 DrissionPage框架优势 二、环境配置与基础改造 2.1 依赖库安装 2.2 基础类改造 三、核心功能模块重构 3.1 请求参数自动化生成 3.2 智能页面渲染 3.3 数据解析优化 四、数据库操作增强 4.1 批量插入…

MINIQMT学习课程Day8

获取qmt账号的资金账号后&#xff0c;我们进入下一步&#xff0c;如何获得当前账号的持仓情况 还是之前的步骤&#xff0c;打开qmt&#xff0c;选择独立交易&#xff0c; 之后使用pycharm&#xff0c;编写py文件。 from xtquant import xtdata from xtquant.xttrader import…

【硬件模块】数码管模块

一位数码管 共阳极数码管&#xff1a;8个LED共用一个阳极 数字编码00xC010xF920xA430xB040x9950x9260x8270xF880x8090x90A0x88B0x83C0xC6D0xA1E0x86F0x8E 共阴极数码管&#xff1a;8个LED共用一个阴极 数字编码00x3F10x0620x5B30x4F40x6650x6D60x7D70x0780x7F90x6FA0x77B0x7…

专为 零基础初学者 设计的最简前端学习路线,聚焦核心内容,避免过度扩展,帮你快速入门并建立信心!

第一阶段&#xff1a;HTML CSS&#xff08;2-3周&#xff09; 目标&#xff1a;能写出静态网页&#xff0c;理解盒子模型和布局。 HTML基础 常用标签&#xff1a;<div>, <p>, <img>, <a>, <ul>, <form> 语义化标签&#xff1a;<head…

详解大模型四类漏洞

关键词&#xff1a;大模型&#xff0c;大模型安全&#xff0c;漏洞研究 1. 引入 promptfoo&#xff08;参考1&#xff09;是一款开源大语言模型&#xff08;LLM&#xff09;测试工具&#xff0c;能对 LLM 应用进行全面漏洞测试&#xff0c;它可检测包括安全风险、法律风险在内…