遇到自作聪明的人很多怎么办

list以及array是python中经常会用到的数据类型当需要对list以及array进行文件的读写操作的时候,由于write函数参数需要的是一个str所以这时就需要对list或者array进行str的转换了。

1、list是python中内置的数据类型其中的数据的类型可以不相同,如java中List也可以不用相同的数据但是为了格式的统一,就要用到泛型或者ArrayListarray中的数据类型必须是一样的。

2、list中保存的数据的存放地址而不是数据,会增加内存的占用所以存放数据还是尽量使用array。

3、list中有append的方法可以进行追加,而array没有追加嘚方法只能通过np.append来实现追加。

4、在print的时候打印的结果不同。list元素之间有","分割而array之间是空格。

当list中存放的数据是字符串时一般是通過str中的join函数进行转换:

但是当list中存放的数据是整型数据或者数字的话,需要先将数据转换为字符串再进行转换:

在将str转化为list时主要就是通过str的split()函数,split()参数为空时默认以空格来做分割。

直接通过list转换时是以每一个字符为分割的

版权声明:本文为博主原创文章遵循 版权协议,转载请附上原文出处链接和本声明

  首先,面试官问道这个问题的目的肯定是想从侧面了解你对技术的理解或者說我解决问题的思路。那么说我们回答这个问题也要从这点着手。我是这样总结的

  在我的编程生涯中,我总结出了几点:
1. 良好的編程习惯是对有效率编程最大的帮助
2. 调试能力的高低是最能反映一个程序员水平的素质。

  那我就分享一些我对调试的理解我记得囿一次项目中需要将一个Ubuntu下的Qt代码移植到VS里面,整体的过程都进行的比较顺利但是在最后进行性能测试的时候,发现效率相差有近百倍怎么办呢?调试第一点就是定位问题。在下手之前我有下列疑问:
1. 效率低,常见的是多线程阻塞导致我这里有多线程读写图片,所以是有这个可能
2. 但是,这个架构在Ubuntu下没有出现问题不存在两者性能悬殊这么大!

  基于这些疑问,我将调试重点放在多线程读取圖片部分最后也的确定位到问题是在多线程里面用OpenCV的imread读取图片消耗的时间巨大。难道问题是Windows下的OpenCV库出现了问题那么是什么问题呢,代碼在Ubuntu下经过了测试换个平台,差距如此大这个中间,我动过各种歪脑筋什么看OpenCV的源码,对多线程流程调试等等花费了几天时间,朂后是一个偶然的机会再论坛里面看到有人讨论到VS下Debug模式和Release模式性能差异的问题我才惊醒,这就是关键最后用Release模式调用相对于的Release库,果然解决了问题

  这是一个很简单的VS使用的问题,但是当时我的日常使用多是Qt初次接触VS,并没有考虑到这个问题导致浪费了相当長的时间。但是事后我进行了反思总结,我认为出现本次事件的关键并非是我对VS不熟而是我分析问题的流程不够科学。Debug就像是警察判案先要分析作案现场,然后通过各种现象得到一个嫌疑人名单之后一个一个去排除,最终定位作案人员这当然是最理想的判案路径,但是如果所有的嫌疑人都被排除了,怎么办如果,都被排除了那么说,有两点:
1. 你的作案现场分析的不够细致遗漏了一些信息。
2. 你根据现场信息得出的嫌疑人名单遗漏了某些人

  接下来应该做的是重新分析问题,确定问题分析很完善了后下一步很关键,放夶你的作案现场从刑侦的角度看,凶手可能存在多个案发现场也有可能我们目前看到的不是第一现场。回到编程这里来首先怀疑多線程然后找到读写图片慢的现象,接下来怀疑是否是OpenCV源码有问题这个可能性实在是小概率事件,且大致的看了源码后也未有发现异常接下来应该扩大案发现场:

  • 是否是其他代码区域有问题?
    • 不会这个读写差异的大小就基本上等于整个工程反映的差异大小了
  • 如果代码没問题,编程环境的差异呢那么可以重点关注VS和Qt的差异,从这里出发不难就可以找到在VS下Debug模式和Release模式性能差异的状况。

      以上虽然昰一个很简单的问题,但是基本能够反映我对调试的理解也可以算是我从事编程到现在总结的一些内功心法了。调试的过程本质上也僦是一个猜想->定位->放大猜想->定位 这样一个循环迭代的过程。简易的示意图如下:

      说句题外话有人会觉得怀疑OpenCV的代码有误是否有必要,我想说当然有必要,OpenCV也是人写的当然有出错的可能,而且我也的确碰到过我在使用某一个版本的OpenCV时发现其设置摄像头分辨率的函數不生效,但是仅限于那个版本冥思苦想后,最终发现是因为这个版本的设置分辨率的函数没有实现

我要回帖

更多关于 自作聪明的人很多 的文章

 

随机推荐