你有一個數字列表,你想過濾掉那些包含唯一數字的數字,即每個數字只能出現在數字中一次。如何過濾包含唯一數字的數字?
正面的例子:
- 58293.6
- 0.1246
負例子:
- 9585(5發生兩次)
- 58293.666(6出現三次)
- 0.12461(1發生兩次)
你會怎麼做呢?我自己的想法是將每個數字轉換爲一個字符串,然後檢查由該字符串的字符組成的集合的大小是否等於字符串的長度。類似的東西:
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
有沒有辦法做到這一點,而無需首先將整數轉換爲字符串?
不要將其轉換回來。對數字的字符串化版本採取其他變量。 – Matthias
特別是如果您的輸入包含'浮動'... –
除此之外,我認爲您的方法很簡單易懂。我會和它一起去的。 –