2014-02-23 167 views

回答

5

使用內置sorted

In [863]: st=sorted(String.split()) 
Out[863]: ['aa', 'ab', 'ba', 'bb'] 

將其打印出來:

In [865]: print '\n'.join(st) 
aa 
ab 
ba 
bb 

list.sort各種替代列表並返回None,這就是爲什麼當你print(lines.sort())它說明不了什麼!顯示由lines.sort(); prnit(lines)列表;)

+0

什麼蟒蛇外殼您使用的? –

+0

@JonathonReinhart ipython -qtconsole – zhangxaochen

2

注意list.sort()排序列表就地,並執行返回一個新的列表。這就是爲什麼

print(lines.sort()) 

正在打印None。嘗試:

lines.sort() # This modifies lines to become a sorted version 
print(lines) 

另外,還有內置的sorted()函數,它返回列表的排序副本,離開原來的不變。使用這樣的:

print(sorted(list)) 
1

因爲到目前爲止其他的答案集中在分選,我要爲分組問題則佔:

String = """ 
    a a 
    a b 
    a c 
    b a 
    b b 
    b c""" 

pairs = sorted(line.split() for line in String.split('\n') if line.strip()) 

from operator import itemgetter 
from itertools import groupby 
for first, grouper in groupby(pairs, itemgetter(0)): 
    print first, "\t", ', '.join(second for first, second in grouper) 

Out: 
a a, b, c 
b a, b, c 
+0

如果分隔符是逗號而不是空格,我該怎麼辦? – user1919035

+0

@ user1919035'line.split(',')'而不是'line.split()'。也許你必須刪除字母周圍的空格:'map(str.strip,line.split(','))' – koffein

+0

我沒有得到在哪裏實現地圖(str.strip,line.split(',' )) – user1919035

相關問題