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通过ssh-powershell监控windows的方法
Jun 02 Python
python 简单搭建阻塞式单进程,多进程,多线程服务的实例
Nov 01 Python
Python 内置函数进制转换的用法(十进制转二进制、八进制、十六进制)
Apr 30 Python
windows下python安装pip图文教程
May 25 Python
解决python3读取Python2存储的pickle文件问题
Oct 25 Python
python实现三维拟合的方法
Dec 29 Python
python3对接mysql数据库实例详解
Apr 30 Python
Python matplotlib生成图片背景透明的示例代码
Aug 30 Python
python如何使用jt400.jar包代码实例
Dec 20 Python
基于SQLAlchemy实现操作MySQL并执行原生sql语句
Jun 10 Python
基于python的opencv图像处理实现对斑马线的检测示例
Nov 29 Python
python 使用cycle构造无限循环迭代器
Dec 02 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
蝙蝠侠:侠影之谜
2020/03/04 欧美动漫
php的一些小问题
2010/07/03 PHP
PHP读取CURL模拟登录时生成Cookie文件的方法
2014/11/04 PHP
php实现监控varnish缓存服务器的状态
2014/12/30 PHP
Google排名中的10个最著名的 JavaScript库
2010/04/27 Javascript
浅谈javascript中onbeforeunload与onunload事件
2015/12/10 Javascript
JS功能代码集锦
2016/05/04 Javascript
jQuery 翻页组件yunm.pager.js实现div局部刷新的思路
2016/08/11 Javascript
JavaScript中的await/async的作用和用法
2016/10/31 Javascript
BootStrap的select2既可以查询又可以输入的实现代码
2017/02/17 Javascript
Vue.js事件处理器与表单控件绑定详解
2017/03/20 Javascript
JavaScript实现三级级联特效
2017/11/05 Javascript
区别JavaScript函数声明与变量声明
2018/09/12 Javascript
移动端底部导航固定配合vue-router实现组件切换功能
2019/06/13 Javascript
浅谈小程序globalData的那些事儿
2019/11/01 Javascript
JavaScript浅层克隆与深度克隆示例详解
2020/09/01 Javascript
vue 获取到数据但却渲染不到页面上的解决方法
2020/11/19 Vue.js
python打开文件并获取文件相关属性的方法
2015/04/23 Python
python常见数制转换实例分析
2015/05/09 Python
使用Python实现简单的服务器功能
2017/08/25 Python
Python闭包思想与用法浅析
2018/12/27 Python
python实现kNN算法识别手写体数字的示例代码
2019/08/16 Python
python多线程实现代码(模拟银行服务操作流程)
2020/01/13 Python
Python安装依赖(包)模块方法详解
2020/02/14 Python
Django 解决新建表删除后无法重新创建等问题
2020/05/21 Python
Python select及selectors模块概念用法详解
2020/06/22 Python
Django model重写save方法及update踩坑详解
2020/07/27 Python
用 python 进行微信好友信息分析
2020/11/28 Python
国外最大的眼镜网站:Coastal
2017/08/09 全球购物
写一个用矩形法求定积分的通用函数
2012/11/08 面试题
linux面试题参考答案(7)
2012/10/29 面试题
2013年保送生自荐信格式
2013/11/20 职场文书
党员2014两会学习心得体会
2014/03/17 职场文书
领导干部“四风”查摆问题个人整改措施
2014/10/28 职场文书
2015年清明节活动总结
2015/02/09 职场文书
互联网创业商业模式以及赚钱法则有哪些?
2019/10/12 职场文书