python给空列表赋值_Python 实现使用空值进行赋值 None

0.摘要

在Python中,尤其是数组当中,对于一些异常值往往需要进行特殊处理。为了防止异常值与正常数据混淆,影响最终计算结果,常用的方法是将异常值置零或者置空。置零的方法较为简单,本文主要介绍如果对python中的数据进行置空。

1.赋值为None

对于一般数据,可以直接为其赋值为None。

i = 1

i = None # int 型数据置空

s = "string"

s = None # 字符串型数据置空

l = [1,2,3,4]

l[2] = None # 列表中元素置空

print(i, s, l)

69420200312200219.jpg

2.numpy类型

numpy 中的数据较为特殊,如果将一个int 型元素赋值为None,或者np.nan都会产生报错:

a = np.arange(10)

a[2] = None

69520200312200219.jpg

a = np.arange(10)

a[2] = np.nan

69620200312200219.jpg

如果打印np.nan的类型,会发现np.nan是float类型的。

>>> type(np.nan)

在numpy数组中,将int型元素赋值为float类型,是不合法的。赋值语句不会报错,但numpy会自动将float类型转为int型。

而打印None类型,会发现None没有类型。

>>> type(None)

赋值报错的原因,个人认为是:numpy判断类型不符,但也无法完成类型转换,所以产生了报错。

在numpy中,如果想将某一元素赋值为None或者这np.nan,可以先将数组转换为float类型。

a = np.arange(10, dtype=float)

a[2] = np.nan

a[3] = None

print(a)

69720200312200219.jpg

从最终结果上看,不论是np.nan,还是None,在numpy中都以nan的形式出现。

补充知识:Python 类型判断 变量存在判断 None与空字符串 is和==区别 nan inf判断

一、类型变量

type

#判断是否为整数

type(varObj) is types.IntType

StringType

FloatType

DictType

TupleType

ListType

BooleanType

isinstance

isinstance(aaa,str)

type与isinstance区别

class A:

pass

class B(A):

pass

isinstance(A(), A) # returns True

type(A()) == A # returns True

isinstance(B(), A) # returns True

type(B()) == A # returns False

二、变量存在

异常捕获

try:

print self.fileReadOpen

except Exception:

pass

else:

del self.fileReadOpen

def isset(v):

try :

type (eval(v))

except :

return 0

else :

return 1

isset('varname') //变量只能在try里调用才会捕获异常,所以采用字符串参数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值