2024-04-24 19:39:54 发布
网友
对于python中的数据结构,()、[]和{}我有点困惑。我试图整理出一个简单的列表,可能是因为我无法识别数据类型,所以无法对其进行排序。
()
[]
{}
我的清单很简单:['Stem', 'constitute', 'Sedge', 'Eflux', 'Whim', 'Intrigue']
['Stem', 'constitute', 'Sedge', 'Eflux', 'Whim', 'Intrigue']
我的问题是这是什么类型的数据,以及如何按字母顺序排列单词?
您可以使用内置的sorted函数。
sorted
print sorted(['Stem', 'constitute', 'Sedge', 'Eflux', 'Whim', 'Intrigue'])
Python有一个名为^{}的内置函数,它将从您提供给它的任何iterable中给您一个排序列表(例如list([1,2,3]);一个dict({1:2,3:4}),尽管它只返回一个排序的键列表;一个set({1,2,3,4);或者一个tuple((1,2,3,4)))。
[1,2,3]
{1:2,3:4}
{1,2,3,4
(1,2,3,4)
>>> x = [3,2,1] >>> sorted(x) [1, 2, 3] >>> x [3, 2, 1]
列表还有一个^{}方法,该方法将就地执行排序(x.sort()只返回x对象,不返回任何结果)。
>>> x = [3,2,1] >>> x.sort() >>> x [1, 2, 3]
两者都采用key参数,该参数应该是可调用的(函数/lambda),您可以使用它来更改排序依据。 例如,要从按值排序的dict中获取(key,value)对的列表,可以使用以下代码:
key
(key,value)
>>> 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)]
[]表示alist,()表示atuple,{}表示adictionary。您应该看看official Python tutorial,因为这些是Python编程的基础。
你有一个字符串列表。你可以这样分类:
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']
也可以按相反顺序对列表进行排序,方法是:
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']
请注意:如果您使用Python 3,那么str对于包含可读文本的每个字符串都是正确的数据类型。但是,如果您仍然需要使用Python 2,那么您可以处理在python2中具有数据类型unicode而不是str的unicode字符串。在这种情况下,如果有unicode字符串列表,则必须编写key=unicode.lower,而不是key=str.lower。
str
unicode
key=unicode.lower
key=str.lower
您可以使用内置的
sorted
函数。Python有一个名为^{} 的内置函数,它将从您提供给它的任何iterable中给您一个排序列表(例如list(
[1,2,3]
);一个dict({1:2,3:4}
),尽管它只返回一个排序的键列表;一个set({1,2,3,4
);或者一个tuple((1,2,3,4)
))。列表还有一个^{} 方法,该方法将就地执行排序(x.sort()只返回x对象,不返回任何结果)。
两者都采用
key
参数,该参数应该是可调用的(函数/lambda),您可以使用它来更改排序依据。例如,要从按值排序的dict中获取
(key,value)
对的列表,可以使用以下代码:[]
表示alist,()
表示atuple,{}
表示adictionary。您应该看看official Python tutorial,因为这些是Python编程的基础。你有一个字符串列表。你可以这样分类:
如您所见,以大写字母开头的单词比以小写字母开头的单词优先。如果要独立排序,请执行以下操作:
也可以按相反顺序对列表进行排序,方法是:
请注意:如果您使用Python 3,那么
str
对于包含可读文本的每个字符串都是正确的数据类型。但是,如果您仍然需要使用Python 2,那么您可以处理在python2中具有数据类型unicode
而不是str
的unicode字符串。在这种情况下,如果有unicode字符串列表,则必须编写key=unicode.lower
,而不是key=str.lower
。相关问题 更多 >
编程相关推荐