Куда я не так с этим пониманием списка? - PullRequest
0 голосов
/ 13 октября 2019

Я хочу извлечь четырехзначный год (2000) из строки или вернуть None или NaN, если его нет.

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 ]

1 голос
/ 13 октября 2019

Я бы удалил пробел и переместил проверку проверки:

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]
0 голосов
/ 13 октября 2019

Это, безусловно, должно работать

x=w.split('; ')

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