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获取Linux下文件版本信息、公司名和产品名的方法
Oct 05 Python
Python中的Classes和Metaclasses详解
Apr 02 Python
详解Django中Request对象的相关用法
Jul 17 Python
浅析Python中的for 循环
Jun 09 Python
Python enumerate索引迭代代码解析
Jan 19 Python
python Pandas 读取txt表格的实例
Apr 29 Python
Django中STATIC_ROOT和STATIC_URL及STATICFILES_DIRS浅析
May 08 Python
python读取一个目录下所有txt里面的内容方法
Jun 23 Python
python使用Matplotlib画饼图
Sep 25 Python
Python 给定的经纬度标注在地图上的实现方法
Jul 05 Python
python之生成多层json结构的实现
Feb 27 Python
IntelliJ 中配置 Anaconda的过程图解
Jun 01 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
基于mysql的论坛(7)
2006/10/09 PHP
JavaScript脚本性能的优化方法
2007/02/02 Javascript
JavaScript监测ActiveX控件是否已经安装过的代码
2008/09/02 Javascript
js 深拷贝函数
2008/12/04 Javascript
javascript 新浪背投广告实现代码
2009/07/07 Javascript
jquery插件制作 表单验证实现代码
2012/08/17 Javascript
7款风格新颖的jQuery/CSS3菜单导航分享
2013/04/23 Javascript
JS获取select的value和text值的简单实例
2014/02/26 Javascript
让table变成exls的示例代码
2014/03/24 Javascript
javascript实现控制的多级下拉菜单
2015/07/05 Javascript
JS实现的仿东京商城菜单、仿Win右键菜单及仿淘宝TAB特效合集
2015/09/28 Javascript
原生态js,鼠标按下后,经过了那些单元格的简单实例
2016/08/11 Javascript
微信小程序 前端源码逻辑和工作流详解
2016/10/08 Javascript
浅谈DOM的操作以及性能优化问题-重绘重排
2017/01/08 Javascript
详解vue移动端日期选择组件
2018/02/22 Javascript
vue2使用keep-alive缓存多层列表页的方法
2018/09/21 Javascript
Vue常用传值方式、父传子、子传父及非父子实例分析
2020/02/24 Javascript
vantUI 获得piker选中值的自定义ID操作
2020/11/04 Javascript
Vuex实现简单购物车
2021/01/10 Vue.js
[38:30]2014 DOTA2国际邀请赛中国区预选赛 LGD-GAMING VS CIS 第一场2
2014/05/24 DOTA
[03:56]DOTA2完美大师赛趣味视频之小鸽子和Mineski打台球
2017/11/24 DOTA
python实现自动发送邮件发送多人、群发、多附件的示例
2018/01/23 Python
pandas的object对象转时间对象的方法
2018/04/11 Python
对Python中9种生成新对象的方法总结
2018/05/23 Python
在Python 不同级目录之间模块的调用方法
2019/01/19 Python
python 对类的成员函数开启线程的方法
2019/01/22 Python
python实现两张图片拼接为一张图片并保存
2019/07/16 Python
selenium2.0中常用的python函数汇总
2019/08/05 Python
keras模型可视化,层可视化及kernel可视化实例
2020/01/24 Python
解决pytorch下出现multi-target not supported at的一种可能原因
2021/02/06 Python
解决tensorflow模型压缩的问题_踩坑无数,总算搞定
2021/03/02 Python
CSS3 按钮边框动画的实现
2020/11/12 HTML / CSS
尤为Wconcept中国官网:韩国设计师品牌服饰
2019/01/10 全球购物
空指针到底是什么
2012/08/07 面试题
班级学习计划书
2014/04/27 职场文书
模特大赛策划方案
2014/05/28 职场文书