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

如题所述

代码如下:

list = ['banana', 'apple', 'orange', 'blueberry', 'watermelon', 'strawberry', 'mango']

print(list)

list.sort()  #根据字母顺序排序

print(list)  #['apple', 'banana', 'blueberry', 'mango', 'orange', 'strawberry', 'watermelon']

list.sort(reverse = True) #根据字母相反顺序排序

print(str(list) + "\n")  #['watermelon', 'strawberry', 'orange', 'mango', 'blueberry', 'banana', 'apple']

扩展资料

sorted()函数四种重要的特性:

1、sorted()函数不需要定义。它是一个内置函数,可以在标准的Python安装中使用。

2、在没有额外的参数的情况下,sorted()函数按照升序对值进行排列,也就是按照从小到大的顺序。

3、原始的numbers不会改变,因为sorted()函数提供了一个新的有序的输出结果,并且不改变原始值的顺序。

4、当sorted()函数被调用时,它会提供一个有序的列表作为返回值

最后一点意味着列表可以使用sorted()函数,并且输出结果可以立刻赋值给一个变量。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-10-14
刚才试了一下,字符串是可以直接比较的,但是要区分大小写。
'a'<'b'
'a'>'B'
所以首先都变成小写吧。
然后
sorted_string=reduce(lambda x,y:x>y and y+x or x+y,lowered_string )
这样会失去原字符串的大小写。
如果想保留大小写, 让他们等效,恐怕需要专门定义一个函数来比较, 一个lambda搞不定。
------------------
看错了,是排序英文名,也是同样的方法,把每个名字第一字符拿出来比较就行了。本回答被提问者采纳