我在判断列表中是否有数字时观察到了这种奇怪的行为.如果编号为泛型int类型,则判断失败;但如果号码是numpy,判断就成功了.int64类型.有人能解释为什么吗?我知道我可以通过生成列表lst=df['A'].values.tolist()
来获得整数列表,而不是列表.但我的问题是,为什么是努比.int64可以在下面工作吗?
import pandas as pd
import numpy as np
df = pd.DataFrame({'A': range(31, 36)})
print(df)
# A
# 0 31
# 1 32
# 2 33
# 3 34
# 4 35
lst=df.values.tolist()
print(lst)
# [[31], [32], [33], [34], [35]]
x=31
print(x) # 31
print(type(x)) # <class 'int'>
if x in lst:
print('Yes')
else:
print('No')
# prints No!
y=df['A'][0]
print(y) # 31
print(type(y)) # <class 'numpy.int64'>
if y in lst:
print('Yes')
else:
print('No')
# prints Yes