HTML dosyalarından bazı verileri kopyalamak için Python'daki Güzel Çorba'yı kullanıyorum. Bazı durumlarda, Güzel Çorba, hem string
hem de NoneType
nesnelerini içeren listeleri döndürür. Tüm NoneType
nesnelerini filtrelemek istiyorum.Yerel Python işlevi, NoneType öğelerini listeden kaldırmak için işlev mi?
Python'da, NoneType
nesnelerini içeren listeler yinelenemez, bu nedenle liste anlama bunun için bir seçenek değildir. Spesifik olarak, NoneTypes
içeren bir lis
listemiz varsa ve [x for x in lis (some condition/function)]
gibi bir şey yapmaya çalışıyorum, Python TypeError: argument of type 'NoneType' is not iterable
hatasını atar.
other posts numaralı belgede gördüğümüz gibi, bu işlevi kullanıcı tanımlı bir işlevde uygulamak basittir.
def filterNoneType(lis):
lis2 = []
for l in links: #filter out NoneType
if type(l) == str:
lis2.append(l)
return lis2
Ancak, ben bir varolduğundan yerleşik Python fonksiyonu bunun için eğer kullanmak isteriz: Burada kendi üstüme lezzettir. Mümkün olduğunda kodumu her zaman basitleştirmeyi severim. Python, listelerindeki NoneType
nesnelerini kaldırabilen yerleşik bir işlev var mı?
'None'ı içeren listelerin yinelenen olmaması yanlıştır. Muhtemelen (yanlışlıkla) 'Hiçbiri'nin kendisi üzerinde yinelemeye çalışıyorsunuzdur:' [x'de Yok için x '). –