我正在嘗試將字符串分組,如地圖輸出。對字符串,組數據中的行進行排序
例:
String = "
a,a
a,b
a,c
b,a
b,b
b,c"
OP:
a a,b,c
b a,b,c
是這種輸出的可能在一個單一的步驟??
我正在嘗試將字符串分組,如地圖輸出。對字符串,組數據中的行進行排序
例:
String = "
a,a
a,b
a,c
b,a
b,b
b,c"
OP:
a a,b,c
b a,b,c
是這種輸出的可能在一個單一的步驟??
使用內置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)
列表;)
注意list.sort()
排序列表就地,並執行不返回一個新的列表。這就是爲什麼
print(lines.sort())
正在打印None
。嘗試:
lines.sort() # This modifies lines to become a sorted version
print(lines)
另外,還有內置的sorted()
函數,它返回列表的排序副本,離開原來的不變。使用這樣的:
print(sorted(list))
因爲到目前爲止其他的答案集中在分選,我要爲分組問題則佔:
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
如果分隔符是逗號而不是空格,我該怎麼辦? – user1919035
@ user1919035'line.split(',')'而不是'line.split()'。也許你必須刪除字母周圍的空格:'map(str.strip,line.split(','))' – koffein
我沒有得到在哪裏實現地圖(str.strip,line.split(',' )) – user1919035
什麼蟒蛇外殼您使用的? –
@JonathonReinhart ipython -qtconsole – zhangxaochen