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()

python 复制代码
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中数据进行操作。

运行效果展示:

拓展延伸

列表的操作:素引,添加,删除,替换

1,索引:正索引,负索引。

2,添加:insert(),append(),extend(),索引添加。

3,删除:remove(),del 语句,pop(),filter(),clear(),切片操作,列表推导式。

4,替换:索引替换。

相关推荐
念念01072 小时前
数学建模竞赛中评价类相关模型
python·数学建模·因子分析·topsis
云天徽上2 小时前
【数据可视化-94】2025 亚洲杯总决赛数据可视化分析:澳大利亚队 vs 中国队
python·信息可视化·数据挖掘·数据分析·数据可视化·pyecharts
☺����2 小时前
实现自己的AI视频监控系统-第一章-视频拉流与解码2
开发语言·人工智能·python·音视频
月盈缺3 小时前
学习嵌入式的第二十二天——数据结构——双向链表
数据结构·学习·链表
猿究院--王升3 小时前
jvm三色标记
java·jvm·算法
王者鳜錸3 小时前
PYTHON让繁琐的工作自动化-函数
开发语言·python·自动化
一车小面包3 小时前
逻辑回归 从0到1
算法·机器学习·逻辑回归
xiao助阵4 小时前
python实现梅尔频率倒谱系数(MFCC) 除了傅里叶变换和离散余弦变换
开发语言·python
科大饭桶4 小时前
C++入门自学Day14-- Stack和Queue的自实现(适配器)
c语言·开发语言·数据结构·c++·容器
tt5555555555554 小时前
字符串与算法题详解:最长回文子串、IP 地址转换、字符串排序、蛇形矩阵与字符串加密
c++·算法·矩阵