2012-10-22 30 views
10

Chúng tôi có các số trong một chuỗi như thế này:số loại trong một dòng

numbers = "1534423543" 

Chúng tôi muốn sắp xếp này và trở về: (! Chỉ số duy nhất)

"1,2,3,4,5" 

thế nào để làm điều đó trong ONE dòng?

+12

tại sao quá quan trọng làm điều đó trong một dòng? – Ant

Trả lời

28

sử dụng set() để có được vật phẩm độc đáo, sau đó sắp xếp chúng bằng cách sử sorted() và cuối cùng tham gia cùng họ sử dụng ",".join()

In [109]: strs="1534423543" 

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

Đó là một lỗ trong ONE! – Pramod

+1

Awsome !! Câu trả lời của Jakkas .. :). –

+0

Chúng ta có cần sử dụng 'sort()' nếu chuỗi chỉ chứa các số không? –

5

Ashwini có câu trả lời đó là trên đầu ngón tay của mọi người - nếu bạn đang lên cho một nhập khẩu, bạn có thể làm ...

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

Và đó là gần một dòng :)

+6

+1 để tuân thủ nghiêm ngặt yêu cầu. lol :) –

+0

Tại sao bạn thích điều này qua giải pháp 'set' đơn giản hơn? – mgilson

+0

@mgilson Tôi chắc chắn sẽ sử dụng giải pháp 'set', chỉ nghĩ rằng tôi sẽ ném vào một giải pháp thay thế (và cảm ơn cho chỉnh sửa) –

Các vấn đề liên quan