我对列表理解的误解在哪里?

时间:2019-10-13 13:32:53

标签: python list-comprehension

我想从字符串中提取4位数字的年份(2000)或返回NoneNaN(如果不存在)。

w = 'A70-11370; reprint; rolled; 2000; 26.5 x 38.5'

我尝试了此操作,但是出现语法错误。

[int(i) for i in w.split(';') if i.isnumeric() else np.nan]

2 个答案:

答案 0 :(得分:1)

我要去掉空白并重新放置验证检查:

In[0]: [int(i.strip()) if str(i.strip()).isnumeric() else np.NaN for i in w.split(';')]
Out[0]: [nan, nan, nan, 2000, nan]

答案 1 :(得分:0)

这肯定可以工作

x=w.split('; ')

if x[3] == ' ':
    print ("null")
else:
    print (x[3])