Python insert() / append() 用法 Leetcode实战演示


Posted in Python onMarch 31, 2021

简单理解就是:
append()是和朋友一起在队尾依次排队
insert(index, object)就是你朋友已经在队列里了,你插队到你朋友的位置–> insert(‘你朋友的位置’, ‘你自己’)
以一道Leetcode例题演示Python中Insert和append的用法。

#好朋友B帮你占了位置,你站到了B前面
You = 'You'
Queue = ['A','B','C','D']
Queue.insert(1,You)
print(Queue)
#['A', 'You', 'B', 'C', 'D']

原题(Leetcode1389)

给你两个整数数组 nums 和 index。你需要按照以下规则创建目标数组:

目标数组 target 最初为空。
按从左到右的顺序依次读取 nums[i] 和 index[i],在 target 数组中的下标 index[i] 处插入值 nums[i] 。
重复上一步,直到在 nums 和 index 中都没有要读取的元素。
请你返回目标数组。

题目保证数字插入位置总是存在。

详细解法

class Solution:
    def createTargetArray(self, nums, index):
        res = [nums[0]]
        for i in range(1,len(index)):
            if index[i] > len(res)-1:
            #若index位置比当前队列长度还长,那理应排在后面,直接append队尾添加
                res.append(nums[i])
                print('---------append----------')
                print('append:',index[i],nums[i])
                print(res)
            else:
            #若index位置处于当前队列中间,则执行insert插队。
                res.insert(index[i],nums[i])
                print('---------insert----------')
                print('insert',index[i],nums[i])
                print(res)
        return res
            
x = Solution()
x = x.createTargetArray([5,3,3,5,1],[0,0,2,1,2])
print(x)

结果演示:
num: [5,3,3,5,1]
index: [0,0,2,1,2]

res= [5]
---------insert----------
insert 0 3
[3, 5]
---------append----------
append: 2 3
[3, 5, 3]
---------insert----------
insert 1 5
[3, 5, 5, 3]
---------insert----------
insert 2 1
[3, 5, 1, 5, 3]
[3, 5, 1, 5, 3]

Python 相关文章推荐
编写Python脚本来获取Google搜索结果的示例
May 04 Python
微信跳一跳python辅助脚本(总结)
Jan 11 Python
Numpy 将二维图像矩阵转换为一维向量的方法
Jun 05 Python
python数据结构学习之实现线性表的顺序
Sep 28 Python
pygame游戏之旅 按钮上添加文字的方法
Nov 21 Python
python实现图书借阅系统
Feb 20 Python
利用pyuic5将ui文件转换为py文件的方法
Jun 19 Python
python实现图像检索的三种(直方图/OpenCV/哈希法)
Aug 08 Python
python matplotlib如何给图中的点加标签
Nov 14 Python
Django权限设置及验证方式
May 13 Python
Python xpath表达式如何实现数据处理
Jun 13 Python
Python数据可视化实现漏斗图过程图解
Jul 20 Python
tensorflow学习笔记之tfrecord文件的生成与读取
Mar 31 #Python
Python中快速掌握Data Frame的常用操作
Mar 31 #Python
pycharm无法导入lxml的解决办法
python某漫画app逆向
python爬虫--selenium模块
Mar 31 #Python
【超详细】八大排序算法的各项比较以及各自特点
pandas 操作 Excel操作总结
Mar 31 #Python
You might like
fleaphp常用方法分页之Pager使用方法
2011/04/23 PHP
初学PHP的朋友 经常问的一些问题。不断更新
2011/08/11 PHP
三种php连接access数据库方法
2013/11/11 PHP
浅析ThinkPHP的模板输出功能
2014/07/01 PHP
使用Codeigniter重写insert的方法(推荐)
2017/03/23 PHP
PHP实现一个多功能购物网站的案例
2017/09/13 PHP
php微信公众号开发之简答题
2018/10/20 PHP
国外的为初学者写的JavaScript教程
2008/06/09 Javascript
基于jQuery的倒计时插件代码
2011/05/07 Javascript
js禁止小键盘输入数字功能代码
2011/08/01 Javascript
ASP.NET jQuery 实例15 通过控件CustomValidator验证CheckBoxList
2012/02/03 Javascript
最好用的省市二级联动 原生js实现你值得拥有
2013/09/22 Javascript
页面元素绑定jquery toggle后元素隐藏的解决方法
2014/03/27 Javascript
三种动态加载js的jquery实例代码另附去除js方法
2014/04/30 Javascript
JQuery中Bind()事件用法分析
2015/05/05 Javascript
AngularJS控制器之间的数据共享及通信详解
2016/08/01 Javascript
js实现刷新页面后回到记录时滚动条的位置【两种方案可选】
2016/12/12 Javascript
JavaScript利用闭包实现模块化
2017/01/13 Javascript
Angular2入门教程之模块和组件详解
2017/05/28 Javascript
详解node-ccap模块生成captcha验证码
2017/07/01 Javascript
vue权限路由实现的方法示例总结
2018/07/29 Javascript
vue动态删除从数据库倒入列表的某一条方法
2018/09/29 Javascript
file-loader打包图片文件时路径错误输出为[object-module]的解决方法
2020/01/03 Javascript
微信小程序开发(一):服务器获取数据列表渲染操作示例
2020/06/01 Javascript
[50:58]2018DOTA2亚洲邀请赛 4.1 小组赛 B组 Mineski vs EG
2018/04/03 DOTA
Python 调用VC++的动态链接库(DLL)
2008/09/06 Python
python列表使用实现名字管理系统
2019/01/30 Python
如何在scrapy中捕获并处理各种异常
2020/09/28 Python
浅谈anaconda python 版本对应关系
2020/10/07 Python
.net C#面试题
2012/08/28 面试题
国贸专业大学生职业生涯规划范文
2014/01/10 职场文书
机关搬迁方案
2014/05/18 职场文书
人事任命书怎么写
2014/06/05 职场文书
学生检讨书范文
2014/10/30 职场文书
javascript函数式编程基础
2021/09/15 Javascript
关于mysql中时间日期类型和字符串类型的选择
2021/11/27 MySQL