如果我想返回列表上的一个操作,但当它为null时,它保持不变,我该怎么说呢



我有一个土耳其语单词组列表。我想申请词干,我发现了turkishnlp包。尽管它有一些缺点,但它通常会返回正确的单词。然而,当我将此应用于列表时,我不希望列表的结构发生变化,我希望他不知道的单词保持不变。

例如,我有以下列表:mylist=[['yolda','elirken','kopek','gördüm'],['ck','tatlıydı']]

我写了这个函数:

from trnlp import TrnlpWord
def tr_stemming(x):
obj = TrnlpWord()
obj.setword(x) if isinstance(x, str) else type(x)(map(tr_stemming, x))
return obj.get_stem if isinstance(x, str) else type(x)(map(tr_stemming, x))

此函数返回以下列表:

tr_stemming(mylist)

[['yol','gelir','','gör'],[','tatlı']]

但是,我想将其作为输出:[['yol','gelir','kopek','gör'],['ck','tatlı']]

如何更新我的功能?谢谢你的帮助!

IIUC,您可以将函数修改为:

def tr_stemming(x):
if isinstance(x, str):
obj = TrnlpWord()
obj.setword(x)
stem = obj.get_stem
return stem if stem else x
elif isinstance(x, list):
return [tr_stemming(e) for e in x]

out = tr_stemming(mylist)

输出:

[['yol', 'gelir', 'kopek', 'gör'], ['cok', 'tatlı']]

最新更新