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基础教程之python消息摘要算法使用示例
Feb 10 Python
python网络编程学习笔记(二):socket建立网络客户端
Jun 09 Python
使用python编写脚本获取手机当前应用apk的信息
Jul 21 Python
python实现的文件夹清理程序分享
Nov 22 Python
编写Python小程序来统计测试脚本的关键字
Mar 12 Python
python中快速进行多个字符替换的方法小结
Dec 15 Python
Python可变参数用法实例分析
Apr 02 Python
Numpy的简单用法小结
Aug 28 Python
python中执行smtplib失败的处理方法
Jul 01 Python
彻底搞懂python 迭代器和生成器
Sep 07 Python
Python基础之tkinter图形化界面学习
Apr 29 Python
python实现语音常用度量方法的代码详解
May 25 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中显示格式化的用户输入
2006/10/09 PHP
让你的网站首页自动选择语言转跳
2006/12/06 PHP
PHP中的错误处理、异常处理机制分析
2012/05/07 PHP
PHP打开和关闭文件操作函数总结
2014/11/18 PHP
PHP中new static() 和 new self() 的区别介绍
2015/01/09 PHP
微信随机生成红包金额算法php版
2016/07/21 PHP
简单几行JS Code实现IE邮件转发新浪微博
2013/07/03 Javascript
纯js和css实现渐变色包括静态渐变和动态渐变
2014/05/29 Javascript
javascript折半查找详解
2015/01/26 Javascript
JQuery简单实现锚点链接的平滑滚动
2015/05/03 Javascript
JS中取二维数组中最大值的方法汇总
2016/04/17 Javascript
浅析Node.js实现HTTP文件下载
2016/08/05 Javascript
AngularJS教程之简单应用程序示例
2016/08/16 Javascript
js中scrollTop()方法和scroll()方法用法示例
2016/10/03 Javascript
JavaScript中如何使用cookie实现记住密码功能及cookie相关函数介绍
2016/11/10 Javascript
获取JavaScript异步函数的返回值
2016/12/21 Javascript
微信小程序自定义tab实现多层tab嵌套功能
2018/06/15 Javascript
JS实现的新闻列表自动滚动效果示例
2019/01/30 Javascript
深入理解 ES6中的 Reflect用法
2020/07/18 Javascript
Javascript表单序列化原理及实现代码详解
2020/10/30 Javascript
Django发送html邮件的方法
2015/05/26 Python
深入理解python try异常处理机制
2016/06/01 Python
Python实现字符串匹配算法代码示例
2017/12/05 Python
python实现猜数字小游戏
2020/03/24 Python
pyqt5 QProgressBar清空进度条的实例
2019/06/21 Python
提升python处理速度原理及方法实例
2019/12/25 Python
Pytorch实现神经网络的分类方式
2020/01/08 Python
python的json包位置及用法总结
2020/06/21 Python
tensorflow 2.0模式下训练的模型转成 tf1.x 版本的pb模型实例
2020/06/22 Python
python使用建议技巧分享(三)
2020/08/18 Python
司机职责范本
2014/03/08 职场文书
项目采购员岗位职责
2014/04/15 职场文书
2014年财政所工作总结
2014/11/22 职场文书
2014年学校财务工作总结
2014/12/06 职场文书
简短清晨问候语
2015/11/10 职场文书
Nginx 过滤静态资源文件的访问日志的实现
2021/03/31 Servers