Rakamların bir listesi var ve benzersiz rakamlar içeren sayıları filtrelemek istiyorsunuz, yani her rakam yalnızca bir kez numarada gerçekleşebilir.Benzersiz rakamlar içeren sayılar nasıl filtrelenir?
Olumlu örnekler:
- 58293,6
- 0,1246
Olumsuz örnekler:
- (5 iki yerde geçer) 58293.666 (6 üç kez gerçekleşir)
- 0,12461 (1 kez gerçekleşir)
Bunu nasıl yapacaksın? Benim kendi fikrim, her bir sayıyı bir dizgeye dönüştürmek ve daha sonra dizenin karakterlerinden yapılmış kümenin boyutunun dizginin uzunluğuna eşit olup olmadığını kontrol etmektir. Bunun gibi bir şey:
def uniques(numbers):
for number in numbers:
str_number = str(number)
if len(set(str_number)) == len(str_number):
yield number
for i in uniques(xrange(1000, 1050)):
print i
1023
1024
1025
1026
1027
1028
1029
1032
1034
1035
1036
1037
1038
1039
1042
1043
1045
1046
1047
1048
1049
ilk dizeleri tamsayıları dönüştürmeden bunu yapmanın bir yolu var mı?
Geri dönüştürmeyin. Sayının dizili sürümü için başka bir değişken alın. – Matthias
Özellikle girişiniz float 'içerir ... –
Bunun yanı sıra, yaklaşımınızın anlaşılması kolay ve basit olduğunu düşünüyorum. Ben onunla giderdim. –