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的setuptools框架下生成egg的教程
Apr 13 Python
Python 稀疏矩阵-sparse 存储和转换
May 27 Python
python3实现网络爬虫之BeautifulSoup使用详解
Dec 19 Python
python 实现将文件或文件夹用相对路径打包为 tar.gz 文件的方法
Jun 10 Python
python用for循环求和的方法总结
Jul 08 Python
详解Anconda环境下载python包的教程(图形界面+命令行+pycharm安装)
Nov 11 Python
Python内置类型性能分析过程实例
Jan 29 Python
python super函数使用方法详解
Feb 14 Python
Python装饰器用法与知识点小结
Mar 09 Python
Django mysqlclient安装和使用详解
Sep 17 Python
详解Java中一维、二维数组在内存中的结构
Feb 11 Python
pytorch 带batch的tensor类型图像显示操作
May 20 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
ThinkPHP实现动态包含文件的方法
2014/11/29 PHP
php微信支付接口开发程序
2016/08/02 PHP
Laravel的Auth验证Token验证使用自定义Redis的例子
2019/09/30 PHP
JavaScript读取中文cookie时的乱码问题的解决方法
2009/10/14 Javascript
jQuery实现可拖动的浮动层完整代码
2013/05/27 Javascript
JavaScript插件化开发教程 (二)
2015/01/27 Javascript
讲解JavaScript中for...in语句的使用方法
2015/06/03 Javascript
理解 JavaScript Scoping & Hoisting(二)
2015/11/18 Javascript
JavaScript希尔排序、快速排序、归并排序算法
2016/05/08 Javascript
清除浏览器缓存的几种方法总结(必看)
2016/12/09 Javascript
Jquery Easyui菜单组件Menu使用详解(15)
2016/12/18 Javascript
JS实现的抛物线运动效果示例
2018/01/30 Javascript
vue 使用eventBus实现同级组件的通讯
2018/03/02 Javascript
详解Angular如何正确的操作DOM
2018/07/06 Javascript
微信小程序HTTP接口请求封装的实现
2019/02/21 Javascript
JS hasOwnProperty()方法检测一个属性是否是对象的自有属性的方法
2021/01/29 Javascript
[52:02]完美世界DOTA2联赛PWL S2 FTD.C vs SZ 第一场 11.27
2020/11/30 DOTA
python设置windows桌面壁纸的实现代码
2013/01/28 Python
python中urllib.unquote乱码的原因与解决方法
2017/04/24 Python
python之PyMongo使用总结
2017/05/26 Python
python利用正则表达式排除集合中字符的功能示例
2017/10/10 Python
Python 从列表中取值和取索引的方法
2018/12/25 Python
详解利用Python scipy.signal.filtfilt() 实现信号滤波
2019/06/05 Python
python sorted函数的小练习及解答
2019/09/18 Python
手机使用python操作图片文件(pydroid3)过程详解
2019/09/25 Python
python名片管理系统开发
2020/06/18 Python
日常奢侈品,轻松购物:Verishop
2019/08/20 全球购物
临床医学应届生求职信
2013/11/06 职场文书
校运会入场式解说词
2014/02/10 职场文书
策划总监岗位职责
2014/02/16 职场文书
汽车转让协议书
2015/01/29 职场文书
表彰大会新闻稿
2015/07/17 职场文书
小学数学继续教育研修日志
2015/11/13 职场文书
车辆挂靠协议书
2016/03/23 职场文书
Python实现socket库网络通信套接字
2021/06/04 Python
Sleuth+logback 设置traceid 及自定义信息方式
2021/07/26 Java/Android