Python中列表list以及list与数组array的相互转换实现方法


Posted in Python onSeptember 22, 2017

本文实例讲述了Python中list以及list与array的相互转换实现方法。分享给大家供大家参考,具体如下:

python中的list是一种有序集合,可以随时增删元素;

# -*- coding: utf-8 -*-
frameID = 1
frameID_list = []
frameID_list.append(frameID)
print (frameID_list)
frameID = 2
frameID_list.append(frameID)
print (frameID_list)
name = 'SRX'
frameID_list.append(name)
print (frameID_list)
print (len(frameID_list))  #打印长度
print (frameID_list[2])  #使用[]进行索引
print (frameID_list[-1])
frameID_list.insert(1, 'WJC')  #在指定位置插入元素
print (frameID_list)
frameID_list.pop()  #将最后一位的元素删除
print (frameID_list)
frameID_list.pop(0)  #删除指定位置的元素
print (frameID_list)

下面说一下list与numpy中的array相互转换。

首先list中的元素属性应该一致才能转换,如下所示,其中frame_ID_list中包含的元素是str型记录的帧号,首先利用np.array将其转成int型的array,然后将转换之后的数组每个元素都做了一个数学运算,由于运算之后的结果是float,因此在第二行又将其强转成了int型,最后再将np的数组转回list,整个操作相当于完成了对list(其中包含的是str类型的元素)中的每个元素进行数学运算,然后再转回list的过程。

frame_ID_list_np = np.array(frame_ID_list, dtype = int)
frame_ID_list_np = np.array(frame_ID_list_np / 1000 * fps, dtype = int)
frame_ID_list = frame_ID_list_np.tolist()

另外,还有一个需要注意的地方,就是类型转换之后再判断两个变量是否相等时,例如:

frame_ID = '1000'
ID_count = 1000
frame_ID = '1000'
ID_count = 1000
if frame_ID == ID_count:
...

这时这个if是不会成立的,这么直接写出来就很容易看到错误所在,但是当frame_ID与ID_count是从别的变量获得的,就没有那么清晰的看出两者的类型了,所以在编程的时候一定要注意这些小细节;

类似的还有存储文件的时候,比如:

str_name_FID = str(frame_ID_list_np_save[count_save_frame_np])
cv2.imwrite('image/' + video_name_save + '_' + str_name_FID + '.jpg',frame) #save the image
count_save_frame_np = count_save_frame_np + 1

在存储图片时,图片的名字一定都要是str类型相互串在一起的,count_save_frame_np是int型的变量,如果直接在程序中使用该变量作为图片名的一部分,是不会存下来任何文件的,所以第一行的强转是必须的,先将其转成str型的,再使用就可以了。

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python 变量类型及命名规则介绍
Jun 08 Python
Python处理字符串之isspace()方法的使用
May 19 Python
深入浅析Python字符编码
Nov 12 Python
Python cookbook(数据结构与算法)将序列分解为单独变量的方法
Feb 13 Python
python 阶乘累加和的实例
Feb 01 Python
在Qt5和PyQt5中设置支持高分辨率屏幕自适应的方法
Jun 18 Python
详解Python 多线程 Timer定时器/延迟执行、Event事件
Jun 27 Python
django页面跳转问题及注意事项
Jul 18 Python
利用Python绘制有趣的万圣节南瓜怪效果
Oct 31 Python
利用Python的sympy包求解一元三次方程示例
Nov 22 Python
python判断all函数输出结果是否为true的方法
Dec 03 Python
利用python调用摄像头的实例分析
Jun 07 Python
Python实现字符串与数组相互转换功能示例
Sep 22 #Python
Python中用post、get方式提交数据的方法示例
Sep 22 #Python
利用python操作SQLite数据库及文件操作详解
Sep 22 #Python
Python正则表达式知识汇总
Sep 22 #Python
python3实现全角和半角字符转换的方法示例
Sep 21 #Python
python实现二分查找算法
Sep 21 #Python
分享给Python新手们的几道简单练习题
Sep 21 #Python
You might like
php 中文处理函数集合
2008/08/27 PHP
19个Android常用工具类汇总
2014/12/30 PHP
简单谈谈PHP vs Node.js
2015/07/17 PHP
PHP实现的策略模式简单示例
2017/08/25 PHP
Laravel使用Queue队列的技巧汇总
2019/09/02 PHP
在网页中控制wmplayer播放器
2006/07/01 Javascript
一个对于Array的简单扩展
2006/10/03 Javascript
JQERY limittext 插件0.2版(长内容限制显示)
2010/08/27 Javascript
jquery 文本上下无缝滚动,鼠标放上去就停止 小例子
2013/06/05 Javascript
java和javascript获取word文档的书签位置对比
2014/06/19 Javascript
jQuery中[attribute^=value]选择器用法实例
2014/12/31 Javascript
JavaScript实现删除,移动和复制文件的方法
2015/08/05 Javascript
超精准的javascript验证身份证号的具体实现方法
2015/11/18 Javascript
jQuery延迟执行的实现方法
2016/12/21 Javascript
JavaScript观察者模式(publish/subscribe)原理与实现方法
2017/03/30 Javascript
es6 字符串String的扩展(实例讲解)
2017/08/03 Javascript
Node.js npm命令运行node.js脚本的方法
2018/10/10 Javascript
js canvas实现二维码和图片合成的海报
2020/11/19 Javascript
微信小程序 弹窗输入组件的实现解析
2019/08/12 Javascript
微信小程序 scroll-view 水平滚动实现过程解析
2019/10/12 Javascript
vue移动端模态框(可传参)的实现
2019/11/20 Javascript
vue项目打包为APP,静态资源正常显示,但API请求不到数据的操作
2020/09/12 Javascript
[47:42]完美世界DOTA2联赛PWL S2 GXR vs Ink 第一场 11.19
2020/11/20 DOTA
Python实现的百度站长自动URL提交小工具
2014/06/27 Python
解析Python中的__getitem__专有方法
2016/06/27 Python
python生成每日报表数据(Excel)并邮件发送的实例
2019/02/03 Python
python的依赖管理的实现
2019/05/14 Python
python requests证书问题解决
2019/09/05 Python
python中selenium库的基本使用详解
2020/07/31 Python
python批量检查两个对应的txt文件的行数是否一致的实例代码
2020/10/31 Python
python解包概念及实例
2021/02/17 Python
杠杆的科学教学反思
2014/01/10 职场文书
关于十八大的演讲稿
2014/09/15 职场文书
护士岗前培训心得体会
2016/01/08 职场文书
python自动化操作之动态验证码、滑动验证码的降噪和识别
2021/08/30 Python
详解Mysql数据库平滑扩容解决高并发和大数据量问题
2022/05/25 MySQL