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中使用中文的方法
Feb 19 Python
Python2.7读取PDF文件的方法示例
Jul 13 Python
Python打印“菱形”星号代码方法
Feb 05 Python
深入分析python中整型不会溢出问题
Jun 18 Python
python: 自动安装缺失库文件的方法
Oct 22 Python
大家都说好用的Python命令行库click的使用
Nov 07 Python
基于TensorFlow中自定义梯度的2种方式
Feb 04 Python
pytorch中使用cuda扩展的实现示例
Feb 12 Python
Python数据可视化图实现过程详解
Jun 12 Python
pytorch 计算ConvTranspose1d输出特征大小方式
Jun 23 Python
Python: glob匹配文件的操作
Dec 11 Python
用python读取xlsx文件
Dec 17 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中Smarty模板初体验
2011/08/08 PHP
php中__destruct与register_shutdown_function执行的先后顺序问题
2014/10/17 PHP
Laravel构建即时应用的一种实现方法详解
2017/08/31 PHP
PHP基于pdo的数据库操作类【可支持mysql、sqlserver及oracle】
2018/05/21 PHP
php桥接模式应用案例分析
2019/10/23 PHP
Javascript设置对象的ReadOnly属性(示例代码)
2013/12/25 Javascript
Js判断CSS文件加载完毕的具体实现
2014/01/17 Javascript
javascript将DOM节点添加到文档的方法实例分析
2015/08/04 Javascript
JavaScript中的call方法和apply方法使用对比
2015/08/12 Javascript
JS刷新父窗口的几种方式小结(推荐)
2016/11/09 Javascript
关于json字符串与实体之间的严格验证代码
2016/11/10 Javascript
JavaScript中关于iframe滚动条的去除和保留
2016/11/17 Javascript
半个小时学json(json传递示例)
2016/12/25 Javascript
jQuery实现导航回弹效果
2017/02/27 Javascript
vue 2.0 购物车小球抛物线的示例代码
2018/02/01 Javascript
微信小程序与后台PHP交互的方法实例分析
2018/12/10 Javascript
详解微信小程序胶囊按钮返回|首页自定义导航栏功能
2019/06/14 Javascript
借助云开发实现小程序短信验证码的发送
2020/01/06 Javascript
基于js判断浏览器是否支持webGL
2020/04/18 Javascript
[51:52]Liquid vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.24
2019/09/10 DOTA
Python学习入门之区块链详解
2017/07/25 Python
Python 多线程其他属性以及继承Thread类详解
2019/08/28 Python
pygame实现烟雨蒙蒙下彩虹雨
2019/11/11 Python
python3中sorted函数里cmp参数改变详解
2020/03/12 Python
详解python3 GUI刷屏器(附源码)
2021/02/18 Python
css3如何绘制一个圆圆的loading转圈动画
2018/01/09 HTML / CSS
英国最大的老式糖果店:A Quarter Of
2017/04/08 全球购物
电大毕业生自我鉴定
2013/11/10 职场文书
2013英文求职信模板范文
2013/11/15 职场文书
客房主管岗位职责
2013/12/09 职场文书
感恩节寄语2015
2015/03/24 职场文书
惊涛骇浪观后感
2015/06/05 职场文书
早安问候语大全
2015/11/10 职场文书
三年级作文之趣事作文
2019/11/04 职场文书
原生JS实现飞机大战小游戏
2021/06/09 Javascript
CSS 左边固定宽右边自适应的6种方法
2022/05/15 HTML / CSS