python中字符串变二维数组的实例讲解

yipeiwu_com6年前Python基础

有一道算法题题目的意思是在二维数组里找到一个峰值。要求复杂度为n。

解题思路是找田字(四边和中间横竖两行)中最大值,用分治法递归下一个象限的田字。

在用python定义一个二维数组时可以有list和numpy.array两种方式,看了几篇python中二维数组的建立的博客发现大多都是建立的初始化的二维数组,而我需要通过文件读取得到的是字符串,再把字符串转换为二维数组,找不到解决方法还是决定自己来转换。

首先,最开始的字符串输出如下,数字之间有空格

思路就是把先按换行符进行切片,再对每一行的字符再进行一次切片操作,代码如下:

但事实上我在用"\n"来进行切片的时候,在末尾留下一个""空的小尾巴,可能是文本中末尾也有一个换行符,所以我在第9行用list.pop()把空的元素去掉了。(window环境中不需要)

就这样可以得到list的二维数组了,因为numpy。array支持比list更多的引索方式,我们用list = np.array(list)把list转换为numpy.array最后结果如下:

到这里就完成转换了,接下来就是写算法解题了。总的来说我还是对自己的方法不太满意,如果有更加优雅的转换二维数组的方法请留言,不胜感激~

以上这篇python中字符串变二维数组的实例讲解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

巧用Python装饰器 免去调用父类构造函数的麻烦

先看一段代码: 复制代码 代码如下: class T1(threading.Thread): def __init__(self, a, b, c): super(T1, self)._...

python类装饰器用法实例

本文实例讲述了python类装饰器用法。分享给大家供大家参考。具体如下: #!coding=utf-8 registry = {} def register(cls): r...

有关Python的22个编程技巧

1. 原地交换两个数字 Python 提供了一个直观的在一行代码中赋值与交换(变量值)的方法,请参见下面的示例: x,y= 10,20 print(x,y) x,y= y,x pri...

Python3.7实现中控考勤机自动连接

由于考勤机与OA对接,OA会在每天定时取考勤机数据,但是需要考勤机是连接状态,所以搜索了下相关教程,写了个脚本自动连接。完全是个Python小白,代码烂,仅作为笔记。 理论上支持所有程序...

python获取Linux下文件版本信息、公司名和产品名的方法

本文实例讲述了python获取Linux下文件版本信息、公司名和产品名的方法,分享给大家供大家参考。具体如下: 区别于前文所述。本例是在linux下得到文件版本信息,主要是通过pefil...