Ben bir listePython'da tüm negatif sayıları sıfıra nasıl değiştiririm?
list1 = [-10,1,2,3,9,-1]
o
bunu nasıl yapabilirimlist1 = [0,1,2,3,9,0]
benziyor böylece sıfıra olumsuz numarasını değiştirmek istiyor? Teşekkürler!
Ben bir listePython'da tüm negatif sayıları sıfıra nasıl değiştiririm?
list1 = [-10,1,2,3,9,-1]
o
bunu nasıl yapabilirimlist1 = [0,1,2,3,9,0]
benziyor böylece sıfıra olumsuz numarasını değiştirmek istiyor? Teşekkürler!
kullanabilirsiniz comprehensions: İkinci varyant sadece True == 1
ve False == 0
beri Python 3 ile çalıştığını
list2 = [0 if i < 0 else i for i in list1]
veya
list2 = [(i > 0) * i for i in list1]
Not. , Python 2 ile çalışmalıdır ancak garanti yoktur.
Bu, SO üzerinde birkaç kez daha önce yanıtlandı. Örneğin: http://stackoverflow.com/questions/19720445/convert-array-of-negative-value-to-positive-value – Ageonix
Çözümde gerekli olmayan çarpım '' '[(i> 0) * i için ben list1] '' '' '' '' 'çok zaman tüketiyor ve gözlerimde soruya iyi bir Yaklaşım değil - evet bunu çözüyor, ama hoş değil. – user69453
@selcuk, Bence (i> 0) * İyi bir uygulama değil. –
Bıkmadan listesi üzerinden ve 0 değişiklik,
def do_the_thing(old_list):
new_list = []
for num in old_list:
if num < 0:
new_list.append(0)
else:
new_list.append(num)
return new_list
Alternatif bir yöntem olarak map
fonksiyonunu Bu seferki Numpy ile ilgisi yoktur
map(lambda x: max(x,0),list1)
@Ageonix kullanabilir ve öyle az buysa bir dizi değil. – Selcuk
Tamam ... seçiminizi yapın. Bu soruyu inceledim ve bu soruya tam anlamıyla cevap veren bir cevapla tam anlamıyla ortaya çıktım. Bunu kullanın: http://stackoverflow.com/questions/19720445/convert-array-of-negative-value-to-positive-value – Ageonix
@Ageonix Çok benzer olduklarına katılıyorum ama yinelenen bir kopyası olmalı . Çok benzer, ancak bir kopyası değil. – Selcuk