当前位置: 首页 > 面试题库 >

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

公良运锋
2023-03-14
问题内容

我对python中的数据结构有些困惑;()[]{}。我正在尝试对一个简单的列表进行排序,可能是因为无法识别无法排序的数据类型。

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

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


问题答案:

[]表示列表,()表示元组和{}表示字典。您应该看一下官方的Python教程,因为这些是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,则可以处理Unicode字符串,其数据类型unicode为Python
2,而不是str。在这种情况下,如果您有一个unicode字符串列表,则必须编写key=unicode.lower而不是key=str.lower



 类似资料:
  • 问题内容: 我是Java的新手,正在尝试按字母顺序排列术语的arrayList。(一个术语定义为一个字符和一个整数)(例如 我的代码如下: 为什么这不起作用?以及我该如何完成呢?我的arrayList称为术语,填充有Term类型 问题答案: 您在这行代码中遇到的问题。您的课程不是So 的类型,这两个对象将基于哪个属性或条件方法? 您必须使您的类为Comparable类型。和,根据您的需要覆盖该方法

  • 问题内容: 如何获得按字段排序的struct输出? 问题答案: A 是字段的 有序 集合。该包使用反射来获取值的字段和值,并按照定义它们的顺序生成输出。 因此,最简单的解决方案是在已经按字母顺序排列字段的位置声明类型: 如果您不能修改字段的顺序(例如,内存布局很重要),则可以通过为结构类型指定一个方法来实现接口: 所述包检查所传递的值工具,并且如果是的话,调用它的方法,以产生输出。 该解决方案的缺

  • 我有以下模式的数据。我想所有的列都应该按字母顺序排序。我希望它在pyspark数据帧中。 下面的代码仅对外部列进行排序,而不对嵌套列进行排序。 此代码后面的模式如下所示 (因为id处有下划线,所以它首先出现) 我想要的架构如下。(甚至地址内的列也应该排序) 提前谢谢。

  • 问题内容: myArray = [Step 6, Step 12, Step 5, Step 14, Step 4, Step 11, Step 16, Step 9, Step 3, Step 13, Step 8, Step 2, Step 10, Step 7, Step 1, Step 15] 如何以这种方式在上面对这个数组排序? 我很快使用了此功能,但它是按这种方式排序的 问题答案: 另

  • 已知字母序列【d, g, e, c, f, b, o, a】,请实现一个函数针对输入的一组字符串 input[] = {“bed”, “dog”, “dear”, “eye”},按照字母顺序排序并打印,结果应为:dear, dog, eye, bed。 说明 本问题在网上比较常见,但这里尝试用另外一个思路,并且用python来写,与众多用c++的有所不同,且似乎短小了不少。自己感觉比网上参考到的更