请教如何用python按字母顺序排序英文名字但是不可以用sort函数

Python014

请教如何用python按字母顺序排序英文名字但是不可以用sort函数,第1张

刚才试了一下,字符串是可以直接比较的,但是要区分大小写

'a'<'b'

'a'>'B'

所以首先都变成小写吧。

然后

sorted_string=reduce(lambda

x,y:x>y

and

y+x

or

x+y,lowered_string

)

这样会失去原字符串的大小写。

如果想保留大小写,

让他们等效,恐怕需要专门定义一个函数来比较,

一个lambda搞不定。

------------------

看错了,是排序英文名,也是同样的方法,把每个名字第一字符拿出来比较就行了。

import nltk

file_b = open('a.txt', 'r')

tokens = nltk.word_tokenize(file_b)

fdist1 = nltk.FreqDist(tokens)

for key,val in sorted(fdist1.iteritems())[:5]:

    print ("{1}: {0}".format(key, round(val / len(tokens), 2)))