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生成随机mac地址的方法
Mar 16 Python
将Python中的数据存储到系统本地的简单方法
Apr 11 Python
Python的Bottle框架中返回静态文件和JSON对象的方法
Apr 30 Python
python3实现TCP协议的简单服务器和客户端案例(分享)
Jun 14 Python
Sanic框架安装与简单入门示例
Jul 16 Python
使用Python快速制作可视化报表的方法
Feb 03 Python
处理python中多线程与多进程中的数据共享问题
Jul 28 Python
Python动态导入模块和反射机制详解
Feb 18 Python
Python Dataframe常见索引方式详解
May 27 Python
keras使用Sequence类调用大规模数据集进行训练的实现
Jun 22 Python
python安装第三方库如xlrd的方法
Oct 31 Python
OpenCV-Python使用cv2实现傅里叶变换
Jun 09 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 str_replace的替换漏洞
2008/03/15 PHP
PHP 裁剪图片成固定大小代码方法
2009/09/09 PHP
php中实现获取随机数组列表的自定义函数
2015/04/02 PHP
PHP删除二维数组中相同元素及数组重复值的方法示例
2017/05/05 PHP
YII2框架中添加自定义模块的方法实例分析
2020/03/18 PHP
在JavaScript并非所有的一切都是对象
2013/04/11 Javascript
Javascript排序算法之合并排序(归并排序)的2个例子
2014/04/04 Javascript
瀑布流布局代码一例
2014/04/11 Javascript
基于Jquery+Ajax+Json实现分页显示附效果图
2014/07/30 Javascript
jQuery 浮动导航菜单适合购物商品类型的网站
2014/09/09 Javascript
node.js中的fs.rmdirSync方法使用说明
2014/12/16 Javascript
javascript判断css3动画结束 css3动画结束的回调函数
2015/03/10 Javascript
利用jQuery中的ajax分页实现代码
2016/02/25 Javascript
JavaScript类型系统之布尔Boolean类型详解
2016/06/26 Javascript
jquery获取下拉框中的循环值
2017/02/08 Javascript
字太多用...代替的方法(两种)
2017/03/15 Javascript
微信小程序实现YDUI的ScrollTab组件
2018/02/02 Javascript
基于Vue实现平滑过渡的拖拽排序功能
2019/06/12 Javascript
vue-router之实现导航切换过渡动画效果
2019/10/31 Javascript
vue组件开发之tab切换组件使用详解
2020/08/21 Javascript
解决Mint-ui 框架Popup和Datetime Picker组件滚动穿透的问题
2020/11/04 Javascript
Python处理字符串之isspace()方法的使用
2015/05/19 Python
详解Python中的Cookie模块使用
2015/07/06 Python
举例详解Python中yield生成器的用法
2015/08/05 Python
浅谈python脚本设置运行参数的方法
2018/12/03 Python
Python with用法:自动关闭文件进程
2019/07/10 Python
Django自定义模板过滤器和标签的实现方法
2019/08/21 Python
python 使用多线程创建一个Buffer缓存器的实现思路
2020/07/02 Python
详解Html5页面实现下载文件(apk、txt等)的三种方式
2018/10/22 HTML / CSS
交通事故私了协议书
2014/04/16 职场文书
大学生求职信
2014/06/17 职场文书
社保委托书怎么写
2014/08/02 职场文书
预备党员党支部意见
2015/06/02 职场文书
幼儿园语言教学反思
2016/02/23 职场文书
农村房屋租赁合同(范本)
2019/07/23 职场文书
SpringBoot整合MongoDB的实现步骤
2021/06/23 MongoDB