python-简单的数据结构

题目描述
小理有一天在网上冲浪的时候发现了一道很有意思的数据结构题。
该数据结构形如长条形。
一开始该容器为空,有以下七种操作。
1 a从前面插入元素 a  ;
2 从前面删除一个元素;
3 a从后面插入一个元素;
4 从后面删除一个元素;
5 将整个容器头尾翻转;
6 输出个数和所有元素;
7 对所有元素进行从小到大排序。
输入格式
只有一组数据,第一行 n,m 代表最大数据数目和操作次数。
接下来每一行一个操作如上描述。保证所有操作合法(不会在容器为空时删除元素)。
6,7 操作共计不会超过 10 次。
输出格式
当执行 6 操作时,第一行先输出当前的个数,然后从头到尾按顺序输出,每两个元素之间用一个空格隔开,末尾不能有空格。
样例输入输出
样例输入
10 9
1 1
3 5
3 4
6
4
5
6
7
6
样例输出
3
1 5 4
2
5 1
2
1 5
数据范围
对于 100% 的数据,保证 1≤n,m,a≤105 。
来源/分类(难度系数:四星
对列 模拟

 


完整代码展示:
n,m=map(int,input().split())
list_1=[]
for i in range(m):
      list_2=list(map(int,input().split()))
      list_1.append(list_2)
list_3=[]
for i in range(0,len(list_1)):
      l=list_1[i]
      if l[0]==1:
           list_3.insert(0,l[1])
      elif l[0]==2:
           list_3.remove(list_3[0])
      elif l[0]==3:
           list_3.append(l[1])
      elif l[0]==4:
           list_3.remove(list_3[-1])
      elif l[0]==5:
           list_3.reverse()
      elif l[0]==6:
           print(len(list_3))
           for j in range(0,len(list_3)-1):
                 print(list_3[j],end=" ")
           print(list_3[-1])
      elif l[0]==7:
           list_3.sort()

n,m=map(int,input().split())
list_1=[]
for i in range(m):list_2=list(map(int,input().split()))list_1.append(list_2)
list_3=[]
for i in range(0,len(list_1)):l=list_1[i]if l[0]==1:list_3.insert(0,l[1])elif l[0]==2:list_3.remove(list_3[0])elif l[0]==3:list_3.append(l[1])elif l[0]==4:list_3.remove(list_3[-1])elif l[0]==5:list_3.reverse()elif l[0]==6:print(len(list_3))for j in range(0,len(list_3)-1):print(list_3[j],end=" ")print(list_3[-1])elif l[0]==7:list_3.sort()

 

 

代码解释:
“n,m=map(int,input().split()) ”,导入用户的最大数据数目n和操作次数m。
“list_1=[]
 for i in range(m):
       list_2=list(map(int,input().split()))
       list_1.append(list_2)                      ”,建立一个空列表list_1,循环m次:导入用户每次的操作,并将每次操作的数据储存在列表list_2中,接着将list_2添加进list_1中。
“list_3=[]
 for i in range(0,len(list_1)):
       l=list_1[i]
       if l[0]==1:
            list_3.insert(0,l[1])
       elif l[0]==2:
            list_3.remove(list_3[0])
       elif l[0]==3:
            list_3.append(l[1])
       elif l[0]==4:
            list_3.remove(list_3[-1])
       elif l[0]==5:
            list_3.reverse()
       elif l[0]==6:
            print(len(list_3))
            for j in range(0,len(list_3)-1):
                  print(list_3[j],end=" ")
            print(list_3[-1])
       elif l[0]==7:
            list_3.sort()                           ”,建立一个空列表list_3,遍历list_1中元素:按照list_1[i]所包含的数据代表的操作对list_3中数据进行操作。

 

运行效果展示:

d6ba43ee40aa4fdfb07b4996bc06468a.jpg

b12a5eb3ea794b9a8aaff2882e6907b1.jpg 

拓展延伸
列表的操作:素引,添加,删除,替换
1,索引:正索引,负索引。
2,添加:insert(),append(),extend(),索引添加。
3,删除:remove(),del 语句,pop(),filter(),clear(),切片操作,列表推导式。
4,替换:索引替换。

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

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

相关文章

Mysql调优之性能监控(一)

前言: 官网就是最好的老师:MySQL,里面各种语法跟参数跟性能调试工具 一、使用show profile查询剖析工具 -- 开启 SET profiling 1; -- 关闭 SET profiling 0; -- 显示查询的性能分析信息 show profiles; -- 显示具体查询id的执行步骤耗时 S…

【视频教程】基于python深度学习遥感影像地物分类与目标识别、分割实践技术应用

我国高分辨率对地观测系统重大专项已全面启动,高空间、高光谱、高时间分辨率和宽地面覆盖于一体的全球天空地一体化立体对地观测网逐步形成,将成为保障国家安全的基础性和战略性资源。未来10年全球每天获取的观测数据将超过10PB,遥感大数据时…

直流无刷电机霍尔线序自学习解释

直流无刷电机霍尔线序自学习 步骤详解 1. 初始连接 连接电机的三相线:A、B、C。连接霍尔传感器线:HA、HB、HC。 2. 输入电压组合与霍尔信号记录 电机的电压输入组合和霍尔信号记录是电机控制系统中至关重要的一部分,它们决定了电机的运转…

codeup:将已有文件夹推送到已有仓库

codeup:将已有文件夹推送到已有仓库 总流程git initgit remote add origin https://codeup.aliyun.com/xxx/xxx.gitgit pull 远程库别名 mastergit add .git commit (会遇到很多问题)git push -u origin master (会遇到很多问题&a…

【OpenAPI】Spring3 集成 OpenAPI 生成接口文档

Spring3 集成 OpenAPI 生成接口文档 1. 依赖 Spring 版本&#xff1a;3.0.5 Java 版本&#xff1a;jdk21 OpenAPI 依赖&#xff1a; <!-- https://mvnrepository.com/artifact/org.springdoc/springdoc-openapi-starter-webmvc-ui --> <dependency><groupI…

JetLinks物联网学习(前后端项目启动)

前后端项目启动 1、后端1.1 pgsql改mysql报错2、elasticSearch7.0版本以上_doc格式取消 2、前端 1、后端 环境准备&#xff1a; 1、window系统7,8&#xff0c;10 。 硬件资源最低要求4c8G&#xff0c;硬盘40G 2、JDK 1.8.0_2xx (需要小版本号大于200) 3、Maven3.6.3 4、Redis …

渗透测试入门学习——php表单form与POST、GET请求练习

最终效果&#xff1a; 必填项为空报错提示&#xff1a; 代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>php表单练习</title> </head> <body> <?php//php中的…

二十种编程语言庆祝中秋节

二十种编程语言庆祝中秋节 文章目录 二十种编程语言庆祝中秋节中秋快乐&#xff01;家人们 &#x1f973;一 Python二 C三 C四 Java五 C#六 Perl七 Go八 Asp九 PHP十 JavaScript十一 JavaScript HTML十二 Visual Basic十三 早期 VB十四 Visual C十五 Delphi十六 Shell十七 Cobo…

教程 | ArcGIS Pro如何自动保存数据编辑内容

目录 1、工程自动保存 2、数据编辑自动保存 世界上最痛苦的事情就是&#xff1a; 软件崩溃&#xff0c;我没保存&#xff01;&#xff01;&#xff01; 电脑死机&#xff0c;我没保存&#xff01;&#xff01;&#xff01; 突然断电&#xff0c;我没保存&#xff01;&…

Vue2知识点

注意:笔记内容来自网络 1Vue指令 指令是指&#xff1a;带有v-前缀的特殊标签属性 1.1 v-html v-html&#xff08;类似 innerHTML&#xff09; 使用语法&#xff1a;<p v-html"intro">hello</p>&#xff0c;意思是将 intro 值渲染到 p 标签中 类似 i…

深入理解Docke工作原理:UnionFS文件系统详解

在容器技术的世界中&#xff0c;文件系统的设计和实现是其关键组成部分&#xff0c;影响着镜像的构建效率、容器的启动速度以及资源的利用率。**UnionFS&#xff08;联合文件系统&#xff09;**作为Docker的核心文件系统技术&#xff0c;通过其独特的分层结构和写时复制&#x…

Matlab simulink建模与仿真 第十三章(信号通路库)

参考视频&#xff1a;simulink1.1simulink简介_哔哩哔哩_bilibili 一、信号通路库中的模块概览 1、信号通路组 注&#xff1a;部分模块在第二章中有介绍&#xff0c;本章不再赘述。 2、信号存储和访问组 二、总线分配模块 Bus Assignment模块接受总线作为输入&#xff0c;并…

集群软件在linux上的安装

前置准备 为了保证各个服务器之间的正常通信&#xff0c;要完成集群化环境的前置准备&#xff0c;包括创建多台虚拟机&#xff0c;配置主机名映射&#xff0c;SSH免密登录等等。 配置多个虚拟机 配置多台Linux虚拟机 安装集群化软件&#xff0c;首要条件就是要有多台Linux服务…

GaussDB关键技术原理:高弹性(五)

书接上文GaussDB关键技术原理&#xff1a;高弹性&#xff08;四&#xff09;从扩容流程框架方面对hashbucket扩容技术进行了解读&#xff0c;本篇将从日志多流和事务相关方面继续介绍GaussDB高弹性技术。 目录 4.2 日志多流 4.2.1 日志多流总体流程 4.2.2 基线数据传输 4.…

CleanClip vs 传统剪贴板:究竟谁更胜一筹?

在日常工作和生活中,复制粘贴可以说是我们使用最频繁的操作之一。传统的剪贴板功能虽然简单易用,但在功能性和效率上还有很大的提升空间。今天,我们就来比较一下新兴的剪贴板增强工具CleanClip与传统剪贴板,看看到底谁更胜一筹。 1. 剪贴历史管理 传统剪贴板只能存储最后一次…

python-字符排列问题

题目描述 有 n 个字母&#xff0c;列出由该字母组成的字符串的全排列&#xff08;相同的排列只计一次&#xff09;。输入格式 第一行输入是字母个数 n 。 接下来一行输入的是待排列的 n 个字母。输出格式 计算出的 n 个字母的所有不同排列总数。样例输入输出样例输入 4 aacc样例…

JavaScript高级——闭包应用-自定义js模块

定义 JS 模块 具有特定功能的 js 文件将所有的数据和功能都封装在一个函数内部&#xff08;私有的&#xff09;只向外暴露一个包含n个方法的对象或函数模块的使用者&#xff0c;只需要通过模块暴露的对象调用方法来实现对应的功能 例子1: 例子2&#xff1a; 本文分享到这里&am…

软件开发项目,如何应对时间压力?

时间压力是软件开发项目中普遍存在的挑战&#xff0c;妥善应对此问题有助于优化资源配置&#xff0c;控制成本超支&#xff0c;提升团队士气与协作效率&#xff0c;进而增强软件项目的成功率&#xff0c;确保项目按时交付&#xff0c;并提升产品质量和客户满意度。如果无法处理…

『功能项目』事件中心处理怪物死亡【55】

本章项目成果展示 我们打开上一篇54回调函数处理死亡的项目&#xff0c; 本章要做的事情是用事件中心处理怪物死亡后的逻辑 首先打开之前事件中心脚本&#xff08;不做更改&#xff0c;调用即可&#xff09;&#xff1a; using System.Collections.Generic; using UnityEngine…

QT程序的安装包制作教程

在Windows平台上开发完qt c桌面应用程序以后&#xff0c;需要制作一个安装包&#xff0c;方便生产和刻盘交货&#xff0c;本文记录相关流程。 目录 一、安装Qt Installer Framework 二、准备可执行程序 2.1 生成Release程序 2.2 完成依赖库拷贝 三、创建安装包程序 一、…