python - python 数据结构排序列表按字母顺序排序

我对python中的数据结构有些迷惑; (),[]和{},我试图排序一个简单的列表。

我的list很简单 ['Stem', 'constitute', 'Sedge', 'Eflux', 'Whim', 'Intrigue']

我的问题是,这是什么类型的数据,以及如何按字母顺序对单词进行排序?

时间:

[]表示列表()表示一个元组{}表示一个词典

你可以按以下的方式对其进行排序:


In [1]: lst = ['Stem', 'constitute', 'Sedge', 'Eflux', 'Whim', 'Intrigue']

In [2]: sorted(lst)
Out[2]: ['Eflux', 'Intrigue', 'Sedge', 'Stem', 'Whim', 'constitute']

可以看到,以大写字母开头的单词优先于以小写字母开头的单词,如果要单独对它们进行排序,请执行以下操作:


In [4]: sorted(lst, key=str.lower)
Out[4]: ['constitute', 'Eflux', 'Intrigue', 'Sedge', 'Stem', 'Whim']

你还可以在反向ORDER BY中对列表进行排序:


In [12]: sorted(lst, reverse=True)
Out[12]: ['constitute', 'Whim', 'Stem', 'Sedge', 'Intrigue', 'Eflux']

In [13]: sorted(lst, key=str.lower, reverse=True)
Out[13]: ['Whim', 'Stem', 'Sedge', 'Intrigue', 'Eflux', 'constitute']

设置({1,2,3,4 ); 或元组((1,2,3,4) ))。


>>> x = [3,2,1]
>>> sorted(x)
[1, 2, 3]
>>> x
[3, 2, 1]

列表中还有一个sort方法,它将按位置执行排序。


>>> x = [3,2,1]
>>> x.sort()
>>> x
[3, 2, 1]

这两个参数都需要一个key参数,该参数应该是可调用的(function/lambda ),你可以使用,
例如,要从按值排序的dict中获取(key,value) -pairs列表,可以使用下面的代码:


>>> x = {3:2,2:1,1:5}
>>> sorted(x.items(), key=lambda kv: kv[1]) # Items returns a list of `(key,value)`-pairs
[(2, 1), (3, 2), (1, 5)]

你正在处理一个python列表,对它进行排序,就像执行这个操作一样简单。


my_list = ['Stem', 'constitute', 'Sedge', 'Eflux', 'Whim', 'Intrigue']
my_list.sort()

你可以使用use sorted函数。


print sorted(['Stem', 'constitute', 'Sedge', 'Eflux', 'Whim', 'Intrigue'])

ListName.sort()将按字母顺序排序,你可以在方括号中添加reverse =False/True来反转项目的顺序。


>>> a = ()
>>> type(a)
<type 'tuple'>
>>> a = []
>>> type(a)
<type 'list'>
>>> a = {}
>>> type(a)
<type 'dict'>
>>> a = ['Stem', 'constitute', 'Sedge', 'Eflux', 'Whim', 'Intrigue'] 
>>> a.sort()
>>> a
['Eflux', 'Intrigue', 'Sedge', 'Stem', 'Whim', 'constitute']
>>> 

...