Python数组初始化固定长度、求和、简单文本处理

1.Python初始化指定长度的数组

1.1初始化一维数组

方法1:

# 0为数组内初始数据,10位数据长度
list = [0]*10  
# 结果:[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

方法2:

list2 = [0 for i in range(10)]
# 结果:[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

1.2初始化二维数组

区别:

二维情形就不同,因为初始化指定长度的二维list时,我们需要把空序列list()复制n次。如果采用方式一,则对list进行浅拷贝,每一个list调用append等方法时,所有list都会同步调用;而方式二这种python风格的数组comprehension表达式方式,则生成了n个相互独立的list对象,此时每行的list之间互不影响。显然,我们应该使用方式二来进行二维list的指定行数的初始化。
方法1:

a = [list()] * 5
a[0].append(1)
# 结果:[[1], [1], [1], [1], [1]]

方法2:

a = [list() for i in range(5)]
a[0].append(1)
# 结果:[[1], [], [], [], []]

2.sum()函数

2.1 一维数组

数组求和时,可使用numpy的sum()函数,但需要注意的是:

  1. 普通数组无法直接使用,即list.sum()会出错;
  2. 将数组转化为np数组,即nplist.sum()可以
  3. 或使用np.sum(list)求和,适用于不想将数组改为np数组的情况。

2.3 二维数组

  1. np.sum(list)将数组中所有元素求和并返回单个数值;
  2. nplist.sum(axis=0)对数组的每列求和,返回一个一维数组;
  3. nplist.sum(axis=1)对每行求和,返回一个一维数组,如果需要保留格式,使用nplist = np.mat(nplist)即可使用上述的axis=0/1返回二维数组。

注意: 文中的nplist指的是np数组

3.文本处理小结

3.1 打开文本文件并使之成为Python对象:

file = open(filepath,...)  # 还有些其他参数

其中读取文件的方式有三种,分别是read()、readline()、readlines()三种,其特性如下:

  1. read() :读取整个文件,把整个文件的内容赋值给一个字符串。
  2. readline() :每次读取一行,把这一行赋值给一个字符串,返回。
  3. readlines() :把文件都放到内存中(如果文件比内存大,则用不了;速率很高);之后把整个文件作为一个list返回。
    replace()

3.2 replace()

str.replace(old, new[, max])

参数含义

  1. old :将被替换的子字符串;
  2. new :新字符串,用于替换old子字符串;
  3. max :可选字符串, 替换不超过max次。
    注意:
    用replace()的时,因为readlines返回是列表的形式,但replace()的参数只能是字符串的形式,所以需要用str进行转换,否则将替换失败。

3.3 正则表达式匹配

pattern= re.compile(r'&,X,H,TD_Z')
match= re.match(pattern, str, flags=0)

re匹配字符串的方法有四种,分别是matchsearchfindallfinditer。其特性如下:

  1. match() :匹配string开头,成功返回Match object, 失败返回None,只匹配一个。
  2. search() :在string中进行搜索,成功返回Match object, 失败返回None, 只匹配一个。
  3. findall() :在string中查找所有匹配成功的组, 即用括号括起来的部分。返回list对象,每个list item是由每个匹配的所有组组成的list
  4. finditer() :在string中查找所有匹配成功的字符串, 返回iterator,每个item是一个Match object

4.判断否包含在list中

在python中可以通过in和not in关键字来判读一个list中是否包含一个元素

theList = ['a', 'b', 'c'] 
if 'a' in theList: 
	print 'a in the list'

if 'd' not in theList: 
	print 'd is not in the lis'’

5.如何将科学计数法的数转化为指定位数的小数

y='{:.5f}'.format(x) 	# 5f表示保留5位小数点的float型
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值