Python 对字符串中的行进行排序,分组数据
我正在尝试像映射输出一样对字符串进行分组 例: 作品:Python 对字符串中的行进行排序,分组数据,python,Python,我正在尝试像映射输出一样对字符串进行分组 例: 作品: 这种类型的输出是否可以在一个步骤中完成???使用内置的排序的: 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,这就是为什么当您打印(lines.sort())时,它不会显示任何内容!通过行显示列表。s
这种类型的输出是否可以在一个步骤中完成???使用内置的
排序的:
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
,这就是为什么当您打印(lines.sort())
时,它不会显示任何内容!通过行显示列表。sort();prnit(行)
;) 使用内置的排序的:
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
,这就是为什么当您打印(lines.sort())
时,它不会显示任何内容!通过行显示列表。sort();prnit(行)
;) 注意,对列表进行适当排序,不会返回新列表。这就是为什么
print(lines.sort())
正在打印None
。尝试:
lines.sort() # This modifies lines to become a sorted version
print(lines)
或者,还有一个内置函数,它返回列表的一个排序副本,而不修改原始副本。像这样使用它:
print(sorted(list))
请注意,对列表进行适当排序,不会返回新列表。这就是为什么
print(lines.sort())
正在打印None
。尝试:
lines.sort() # This modifies lines to become a sorted version
print(lines)
或者,还有一个内置函数,它返回列表的一个排序副本,而不修改原始副本。像这样使用它:
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
因为到目前为止,其他答案都集中在排序上,所以我想对分组问题做出以下贡献:
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
您使用的python shell是什么?@JonathonReinhart ipython QTConsole您使用的python shell是什么?@JonathonReinhart ipython QTConsole如果分隔符是逗号而不是空格,我该怎么办?@user1919035line.split(',')
而不是line.split()
。也许您必须删除字母周围的空白:map(str.strip,line.split(','))
我没有找到实现map(str.strip,line.split(','))@user1919035而不是line.split()
如果分隔符是逗号而不是空格该怎么办?@user1919035line.split(',')
而不是line.split()
。也许您必须删除字母周围的空白:map(str.strip,line.split(','))
我没有找到实现map(str.strip,line.split(','))@user1919035而不是line.split()