2012-10-22 20 views
10

我們有一個字符串的數字是這樣的:排序號

numbers = "1534423543" 

我們要解決這並返回:(!只有唯一的號碼)

"1,2,3,4,5" 

如何在一條線上做?

+12

爲什麼如此重要在一條線上呢? – Ant

回答

28

使用set()獲得獨特的物品,然後用sorted()對其進行排序,最後用",".join()

In [109]: strs="1534423543" 

In [110]: ",".join(sorted(set(strs))) 
Out[110]: '1,2,3,4,5' 
+2

這是一個洞! – Pramod

+1

Awsome !! Jakkas回答.. :)。 –

+0

如果字符串只包含數字,我們是否需要使用'sorted()'? –

5

阿什維尼有一個對每個人的手指尖端的答案加入他們 - 如果你申請一個進口,你可以做...

from itertools import groupby; ','.join(k for k, g in groupby(sorted(nums))) 

而這幾乎一個行:)

+6

+1嚴格按照要求。大聲笑:) –

+0

爲什麼你更喜歡這個更簡單的'設置'解決方案? – mgilson

+0

@mgilson我肯定會使用'set'解決方案,只是認爲我會拋出一個替代方案(並感謝編輯) –