我怎么能说如果我想 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ı']]
我有一个土耳其语单词组列表。我想应用词干提取,我找到了 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ı']]