Dizelerde bulunan heterojen veri türlerine sahip öğeler listesi var. Bu itibaren
lst=['1','err','-1',' ','155']
, sadece pozitif sayılar ile yeni bir listesini elde etmek istiyorum: Ben aşağıda gösterildiği gibi negatif sayılar önlemek için çalıştık new_lst=[1,155]
python 3'te heterojen veri türü öğesi içeren bir listeden yalnızca pozitif bir sayı alınıyor 0
. Ancak, ben dizeleri ve boş dizeleri önlemek mümkün değilim:
lst1=int(lst)
for i in lst1:
if i<0:
print i
else:
continue
Traceback (most recent call last):
File "C:/Users/Dev/Documents/Assignment-2/test-2.py", line 22, in <module>
c3=int(row[3])
ValueError: invalid literal for int() with base 10: 'err'
>>>
Olası kopyası [Bir değişkenin tamsayı olup olmadığının kontrol edilmesi] (http://stackoverflow.com/questions/3501382/checking-whether-a-variable-is-an-integer-or-not) – Ryan
Bu Ev ödevi gibi geliyor, bu yüzden size çalışma kodu vermek yerine, nasıl çözüleceğine dair bir fikir vereceğim. İlk önce, listenizi yineleyin ve listedeki her bir öğe için, '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' Dönüştürme başarılıysa, sayının 0'dan büyük olup olmadığını kontrol edin. Varsa, bunu pozitif sayılar listenize ekleyebilirsiniz. –
"int()" çağrınızı try/except seçeneğine sarın. – RobertB