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 可爱的大小写
Sep 06 Python
Python中的作用域规则详解
Jan 30 Python
Python作用域用法实例详解
Mar 15 Python
python实现实时监控文件的方法
Aug 26 Python
python append、extend与insert的区别
Oct 13 Python
解决python通过cx_Oracle模块连接Oracle乱码的问题
Oct 18 Python
Python3实现的旋转矩阵图像算法示例
Apr 03 Python
python中的数据结构比较
May 13 Python
python递归下载文件夹下所有文件
Aug 31 Python
django 实现简单的插入视频
Apr 07 Python
Python Socket TCP双端聊天功能实现过程详解
Jun 15 Python
python如何控制进程或者线程的个数
Oct 16 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表单转换textarea换行符的方法
2010/09/10 PHP
jQuery+PHP实现的掷色子抽奖游戏实例
2015/01/04 PHP
javascript StringBuilder类实现
2008/12/22 Javascript
JavaScript高级程序设计 扩展--关于动态原型
2010/11/09 Javascript
js中的数组Array定义与sort方法使用示例
2013/08/29 Javascript
js截取中英文字符串、标点符号无乱码示例解读
2014/04/17 Javascript
java和javascript获取word文档的书签位置对比
2014/06/19 Javascript
jQuery中:has选择器用法实例
2014/12/30 Javascript
jQuery构造函数init参数分析续
2015/05/13 Javascript
jquery简单实现带渐显效果的选项卡菜单代码
2015/09/01 Javascript
JS实现常见的TAB、弹出层效果(TAB标签,斑马线,遮罩层等)
2015/10/08 Javascript
分享两款带遮罩的jQuery弹出框
2015/12/30 Javascript
非常漂亮的相册集 使用jquery制作相册集
2016/04/28 Javascript
Vue+webpack+Element 兼容问题总结(小结)
2018/08/16 Javascript
如何基于filter实现网站整体变灰功能
2020/04/17 Javascript
vue+vuex+axios从后台获取数据存入vuex,组件之间共享数据操作
2020/07/31 Javascript
nestjs返回给前端数据格式的封装实现
2021/02/22 Javascript
Python中多线程thread与threading的实现方法
2014/08/18 Python
Python中的ConfigParser模块使用详解
2015/05/04 Python
Python生成词云的实现代码
2020/01/14 Python
python GUI库图形界面开发之PyQt5开发环境配置与基础使用
2020/02/25 Python
python使用requests库爬取拉勾网招聘信息的实现
2020/11/20 Python
HTML5 3D旋转相册的实现示例
2019/12/03 HTML / CSS
Dower & Hall官网:英国小众轻奢珠宝品牌
2019/01/31 全球购物
在对linux系统分区进行格式化时需要对磁盘簇(或i节点密度)的大小进行选择,请说明选择的原则
2012/01/13 面试题
你懂得怎么写自荐信吗?
2013/12/27 职场文书
邮政员工辞职信
2014/01/16 职场文书
报关专员求职信范文
2014/02/22 职场文书
创建省级文明单位实施方案
2014/02/27 职场文书
美术学专业求职信
2014/07/23 职场文书
优秀班主任材料
2014/12/16 职场文书
《珍珠鸟》教学反思
2016/02/16 职场文书
汽车销售合同文本
2019/08/08 职场文书
分析MySQL抛出异常的几种常见解决方式
2021/05/18 MySQL
一文搞懂php的垃圾回收机制
2021/06/18 PHP
实体类或对象序列化时,忽略为空属性的操作
2021/06/30 Java/Android