当前位置: 首页 > news >正文

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.mrgr.cn/news/29429.html

相关文章:

  • C语言数据结构与算法--简单实现队列的入队和出队
  • 大数据相关技术的基本概念?
  • Kafka新节点加入集群操作指南
  • 软件设计师-操作系统
  • 【React】条件渲染——逻辑与运算符
  • 接口测试面试题及答案(后续)
  • 发布Java项目到Maven中央仓库
  • vimrc nnoremap配置
  • centos bash脚本一键运行安装go环境
  • 智算筑基,九章云极DataCanvas公司闪耀2024年服贸会
  • i++volatile
  • 超详细超实用!!!零基础java开发之云风笔记笔记列表接口条件查询(九)
  • C CS3214
  • 产品经理有必要学习大模型技术吗?
  • 数据治理新时代:掌握关键的数据提取技术
  • ai头像免费软件有哪些?卡哇伊头像用这些
  • 【Springboot】——响应与分层解耦架构
  • 如何利用AI进行有效的科技产品发布
  • idea 中MyBatisX插件没有出现蓝色鸟
  • 突破空间限制:4个远程控制电脑的办法
  • 十大最佳电子商务市场广告工具,助力提升你的业务
  • go-orm接口原生到框架
  • 印度2024年节日季节的数字营销趋势
  • 国产开源大语言模型优劣大盘点
  • GaussDB关键技术原理:高弹性(五)
  • 碳化硅肖特基二极管B3D50120H2高速开关与低损耗的完美结合