Pycharm(十二)列表练习题

一、门和钥匙

        小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  #细节:删除元素后索引要-1i+=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.mzph.cn/bicheng/75366.shtml

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

相关文章

在未归一化的线性回归模型中,特征的尺度差异可能导致模型对特征重要性的误判

通过数学公式来更清晰地说明归一化对模型的影响&#xff0c;以及它如何改变特征的重要性评估。 1. 未归一化的情况 假设我们有一个线性回归模型&#xff1a; y β 0 β 1 x 1 β 2 x 2 ϵ y \beta_0 \beta_1 x_1 \beta_2 x_2 \epsilon yβ0​β1​x1​β2​x2​ϵ 其…

JS—页面渲染:1分钟掌握页面渲染过程

个人博客&#xff1a;haichenyi.com。感谢关注 一. 目录 一–目录二–页面渲染过程三–DOM树和渲染树 二. 页面渲染过程 浏览器的渲染过程可以分解为以下几个关键步骤 2.1 解析HTML&#xff0c;形成DOM树 浏览器从上往下解析HTML文档&#xff0c;将标签转成DOM节点&#…

niuhe插件, 在 go 中渲染网页内容

思路 niuhe 插件生成的 go 代码是基于 github.com/ma-guo/niuhe 库进行组织管理的, niuhe 库 是对 go gin 库的一个封装&#xff0c;因此要显示网页, 可通过给 gin.Engine 指定 HTMLRender 来实现。 实现 HTMLRender 我们使用 gitee.com/cnmade/pongo2gin 实现 1. main.go …

openEuler24.03 LTS下安装HBase集群

前提条件 安装好Hadoop完全分布式集群&#xff0c;可参考&#xff1a;openEuler24.03 LTS下安装Hadoop3完全分布式 安装好ZooKeeper集群&#xff0c;可参考&#xff1a;openEuler24.03 LTS下安装ZooKeeper集群 HBase集群规划 node2node3node4MasterBackup MasterRegionServ…

LVGL移植说明

https://www.cnblogs.com/FlurryHeart/p/18104596 参考&#xff0c;里面说明了裸机移植以及freeRTOS系统移植。 移植到linux https://blog.csdn.net/sunchao124/article/details/144952514

ubuntu虚拟机裁剪img文件系统

1. 定制文件系统前期准备 将rootfs.img文件准备好&#xff0c;并创建target文件夹2. 挂载文件系统 sudo mount rootfs.img target #挂载文件系统 sudo chroot target #进入chroot环境3. 内裁剪文件系统 增删裁剪文件系统 exit #退出chroot环境 sudo umount target…

esp826601s固件烧录方法(ch340+面包板)

esp826601s固件烧录方法&#xff08;ch340面包板&#xff09; 硬件 stm32f10c8t6&#xff0c;esp826601s,面包板&#xff0c;ch340(usb转ttl),st_link&#xff08;供电&#xff09; 接线 烧录时&#xff1a; stm32f10c8t6&#xff1a;gnd->负极&#xff0c; 3.3->正极…

Servlet 点击计数器

Servlet 点击计数器 引言 Servlet 是 Java 企业版&#xff08;Java EE&#xff09;技术中的一种服务器端组件&#xff0c;用于处理客户端请求并生成动态内容。本文将详细介绍如何使用 Servlet 实现一个简单的点击计数器&#xff0c;帮助读者了解 Servlet 的基本用法和原理。 …

LangChain vs. LlamaIndex:深入对比与实战应用

目录 引言LangChain 与 LlamaIndex 概述 什么是 LangChain&#xff1f;什么是 LlamaIndex&#xff1f;两者的核心目标与适用场景 架构与设计理念 LangChain 的架构设计LlamaIndex 的架构设计关键技术差异 核心功能对比 数据连接与处理查询与检索机制上下文管理能力插件与扩展性…

【Java中级】10章、内部类、局部内部类、匿名内部类、成员内部类、静态内部类的基本语法和细节讲解配套例题巩固理解【5】

❤️ 【内部类】干货满满&#xff0c;本章内容有点难理解&#xff0c;需要明白类的实例化&#xff0c;学完本篇文章你会对内部类有个清晰的认知 &#x1f495; 内容涉及内部类的介绍、局部内部类、匿名内部类(重点)、成员内部类、静态内部类 &#x1f308; 跟着B站一位老师学习…

内容中台:驱动多渠道营销的关键策略

在数字营销快速发展的今天&#xff0c;企业需要在多个渠道&#xff08;网站、社交媒体、移动应用等&#xff09;上同步管理内容。尽管网站仍是品牌展示的核心&#xff0c;但信息分散、多平台重复创建内容的问题&#xff0c;让营销人员面临巨大的管理挑战。 内容中台&#xff0…

SvelteKit 最新中文文档教程(17)—— 仅服务端模块和快照

前言 Svelte&#xff0c;一个语法简洁、入门容易&#xff0c;面向未来的前端框架。 从 Svelte 诞生之初&#xff0c;就备受开发者的喜爱&#xff0c;根据统计&#xff0c;从 2019 年到 2024 年&#xff0c;连续 6 年一直是开发者最感兴趣的前端框架 No.1&#xff1a; Svelte …

CMake 中的置变量

在 CMake 中&#xff0c;变量是存储和传递信息的重要方式。以下是一些常用的 CMake 变量&#xff0c;以表格形式列出&#xff0c;包括它们的名称、含义和常见用途&#xff1a; 变量名称含义常见用途CMAKE_CURRENT_SOURCE_DIR当前处理的 CMakeLists.txt 文件所在的源代码目录的…

深入解析C++类:面向对象编程的核心基石

一、类的本质与核心概念 1.1 类的基本定义 类是将**数据&#xff08;属性&#xff09;与操作&#xff08;方法&#xff09;**封装在一起的用户自定义类型&#xff0c;是面向对象编程的核心单元。 // 基础类示例 class BankAccount { private: // 访问控制string owner; …

介绍 Docker 的基本概念和优势,以及在应用程序开发中的实际应用及数组讲解

Docker 是一种轻量级的容器化技术&#xff0c;能够让开发者将应用程序和其所有依赖项打包成一个独立的容器&#xff0c;实现快速部署和运行。以下是 Docker 的基本概念和优势&#xff1a; 基本概念&#xff1a; 镜像&#xff08;Image&#xff09;&#xff1a;镜像是一个只读的…

在msys2里面的mingw64下面编译quickjs

其实非常的简单&#xff0c;就是正常的make 和make install就行了&#xff0c;这里只是简单的做个编译过程记录。 打开开始--程序--里面的msys64里面的mingw64控制台窗口&#xff0c;切换到quickjs下载解压缩后的目录&#xff0c;执行make和make install ndyHP66G5 MINGW64 ~…

el-table实现表头带筛选功能,并支持分页查询

最开始尝试了下面方法&#xff0c;发现这种方法仅支持筛选当前页的数据&#xff0c;不符合产品要求 于是通过查询资料发现可以结合filter-change事件&#xff0c;当表格的筛选条件发生变化的时候会触发该事件&#xff0c;调接口获取符合条件的数据&#xff0c;实现如下 1、表格…

OpenCV 从入门到精通(day_03)

1. ROI切割 ROI&#xff1a;Region of Interest&#xff0c;翻译过来就是感兴趣的区域。什么意思呢&#xff1f;比如对于一个人的照片&#xff0c;假如我们要检测眼睛&#xff0c;因为眼睛肯定在脸上&#xff0c;所以我们感兴趣的只有脸这部分&#xff0c;其他都不care&#xf…

OpenGL进阶系列20 - OpenGL SuperBible - bindlesstex 例子学习

目录 一:概述: 二:相关API介绍 三:代码完整注释 一: 概述: 什么是无绑定纹理(bindless texture)?无绑定纹理是OpenGL的一项技术,旨在消除传统的纹理绑定操作。这项技术允许着色器直接访问纹理而不需要显式地将纹理绑定到某个纹理单元,从而减少了渲染管线中的开销…

Spring Security认证授权深度解析

一 Spring Security简介 Spring Security是Spring生态系统中的一个安全框架&#xff0c;主要用于处理认证(Authentication)和授权(Authorization)。它提供了一套完整的安全解决方案&#xff0c;可以轻松集成到Spring应用中。 二 核心概念 1. 认证(Authentication) 验证用户…