Python判断对象类型

1
2
3
4
import numpy as np
import pandas as pd
import re,os,random
from datetime import date,time,timedelta,datetime

str.isdigit()

  • 如果字符串只包含数字则返回 True 否则返回 False。
1
2
3
4
a = ''
c = '37'

a.isdigit()
False
1
c.isdigit()
True

str.isnumeric()

  • 如果字符串中只包含数字字符,则返回 True,否则返回 False
1
2
3
a = '18'

a.isnumeric()
True
1
''.isnumeric()
False

str.isspace()

  • 如果字符串中只包含空格,则返回 True,否则返回 False.
1
2
3
''.isspace()

' '.isspace()
False

True

str.isalnum()

  • 如果 string 至少有一个字符并且所有字符都是字母或数字则返回 True,否则返回 False
1
2
3
4
# 至少有 1 个字母或数字;没有字母和数字之外的符号
'abc'.isalnum()
'123'.isalnum()
'a2b3ccc'.isalnum()
True

True

True
1
2
3
# 有空格
' a2b3ccc'.isalnum()
'a 2b3ccc'.isalnum()
False

False

.isidentifier()

  • 字符串是有效标识符,则 isidentifier() 方法返回 True,否则返回 False
  • 如果字符串仅包含字母数字字母(a-z)和(0-9)或下划线(_),则该字符串被视为有效标识符。有效的标识符不能以数字开头或包含任何空格。
1
2
3
# 字母和数字以及 `_`组成,且非数字开头
'abc345'.isidentifier()
'abc_345'.isidentifier()
True

True
1
2
# 包含有除 `_` 之外的其他符号
'abc_|345'.isidentifier()
False
1
2
# 包含有空格
'abc_ 345'.isidentifier()
False
1
2
# 数字开头
'1abc_ 345'.isidentifier()
False

set.issubset(sequence)

  • 如果集合中的所有项目都存在于指定集合中,则 issubset() 方法将返回 True,否则返回 False。
  • set: {}
  • sequence: 序列
1
2
3
4
5
6
7
8
# 数据集 set 是否包为 序列的子集
# set 是否被 seq 包含
a = {1,2,4}
b = [1,2,3,4]
c = [1,2,3]

a.issubset(b)
a.issubset(c)
True

False

判断是否为空

  1. df.empty
  2. not seq
1
2
3
# DataFrame.empty
df = pd.DataFrame()
df.empty
True
1
2
3
4
5
6
7
8
# seq 是否为空。 not seq
lst = []
st = {}
dct = {}

not lst
not st
not dct
True

True

True

type() / isinstance()

  1. type()
  2. isinstance(obj,type)
1
2
3
4
5
6
# type str,int,float,Nan,
type('')
type(' ')
type(np.nan)
type('abc')
type(123)
str

str

float

str

int
1
2
3
# type() seq
type([])
type({})
list

dict
1
2
3
# type() df,sr
type(pd.DataFrame())
type(pd.Series())
pandas.core.frame.DataFrame

pandas.core.series.Series
1
2
# datetime
type(date.today())
datetime.date
1
2
3
4
5
# str,int,float,Nan
isinstance('a',str)
isinstance(1,int)
isinstance(1,float)
isinstance(np.nan,float)
True

True

False

True
1
2
3
4
# seq
isinstance(['a'],list)
isinstance({'a'},set)
isinstance({'a':45},dict)
True

True

True
1
2
3
# df,sr
isinstance(pd.Series(),pd.core.series.Series)

True
1
2
3
4
5
6
# 类型可以指定多个。判断一个值或集合是否为多个类型
isinstance(123,float|int)

a = np.pi
isinstance(a,float|int)
type(a)
True

True

float