我怎么能说如果我想 return 列表上的操作,但它在出现 null 时保持不变?

How can I say that if I want to return an operation on a list, but it stays the same when it comes out null?

我有一个土耳其语单词组列表。我想应用词干提取,我找到了 turkishnlp 包。虽然它有一些缺点,但它经常 returns 正确的词。但是,当我将其应用于列表时,我不希望我的列表结构发生变化,我希望他不知道的单词保持不变。

例如,我有这个列表: mylist = [['yolda','gelirken','kopek','gördüm'],['cok','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))

这个函数returns这个列表:

tr_stemming(mylist)

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

但是,我想将其作为输出: [['yol', 'gelir', 'kopek', 'gör'], ['cok', '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ı']]