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

自定义排序python

锺离伟彦
2023-03-14
问题内容

我有一个问题:这是由ElementTree库形成的列表列表。

   [['word1', <Element tag at b719a4cc>], ['word2', <Element tag at b719a6cc>], ['word3', <Element tag at b719a78c>], ['word4', <Element tag at b719a82c>]]

word1..4可能包含Unicode字符,即(â,ü,ç)。

我想按我的自定义字母对列表列表进行排序。

我知道如何从这里按python中的单词对自定义字母进行排序

我也知道如何从此处http://wiki.python.org/moin/HowTo/Sorting按键排序

问题是我找不到如何应用这两种方法对“列表列表”进行排序的方法。


问题答案:

您的第一个链接或多或少解决了这个问题。您只需要让lambda函数仅查看列表中的第一项即可:

alphabet = "zyxwvutsrqpomnlkjihgfedcba"

new_list = sorted(inputList, key=lambda word: [alphabet.index(c) for c in word[0]])

如果您要对相当大的列表进行排序,我可能会建议的一种修改是先将字母结构更改为字典,以便索引查找更快:

alphabet_dict = dict([(x, alphabet.index(x)) for x in alphabet)
new_list = sorted(inputList, key=lambda word: [alphabet_dict[c] for c in word[0]])


 类似资料:
  • 问题内容: 我有这样的查询: 但是,当我打印出来时,它会自动进行1,2,3,4,5的排序。我们如何在不更改数据库结构的情况下保持顺序(2,4,1,5,3)? 谢谢! 问题答案: 我问这个: mysql按问题排序 我得到的答案和所有功劳归于他们: 您可以使用CASE运算符指定顺序: 在PHP中,你可以像这样:

  • 有的时候我们希望排序不是仅仅按照自然顺序排序。例如,我们希望按照字符串的长度来对一个字符串数组排序而不是按照字母顺序来排序。这里我们介绍一下Go的自定义排序。 package main import "sort" import "fmt" // 为了能够使用自定义函数来排序,我们需要一个 // 对应的排序类型,比如这里我们为内置的字符串 // 数组定义了一个别名ByLength type ByLe

  • 问题内容: 所以我有一个字典,打印时看起来像这样: 我想以我定义的自定义方式对它们进行排序。假设我希望按键排序的方式是。 有人知道如何以预定义/自定义的方式整理字典吗?我正在做的是从数据库中获取此词典,它可以带有20多个键,所有键都有特定的顺序。总是设置顺序,但有时某些键/值不会出现在字典中。所以这也可能发生: (按键排序)为。 因此,在此示例中不存在10,但是我需要的排序仍然相同,仅缺少10。

  • 问题内容: 我有一个[],其中有一些数字(距离某个点的距离)。 我想在第一个数组中创建索引数组,其中索引按距离排序。 例如 假设 那我想得到一个像这样的数组: 因此,如果要第二近距离,可以检查dist [sortedIndexes [1]]。 我不想对原始数组进行排序,而只是根据距离对索引数组进行排序。 更新1:我正在尝试的代码如下所示: 但是我遇到了一些错误,其中最“有问题”的是:“ 无法引用用

  • 问题内容: 如何在Django中定义特定顺序? 具体来说,如果我有QuerySet这样的话:。 我正在寻找以下商品时,按常规订购(使用)会给我。 定义自己的订购技术的正确方法是什么? 问题答案: 据我所知,没有办法以这种方式指定数据库端的排序,因为它过于特定于后端。你可能希望采用老式的Python排序: 如果你发现自己非常需要这种排序,那么建议你为执行排序的模型制作一个自定义子类。就像是:

  • 问题内容: 我有以下数据框,我想先按“重要性”排序,然后再按“名称”排序: 我一直在努力做到这一点使用中提供了答案这个职位,但我不能得到它的工作。 最终结果应该是这样的 问题答案: 一种方法是使用自定义字典创建“等级”列,然后使用进行排序,然后在排序后删除该列: