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

根据另一个列表的顺序重新排列列表

冯宏浚
2023-03-14
问题内容

我确信这个问题以前可能已经被问过,但我似乎找不到正确的答案。如果我有两个清单

_list1 = ["keyName", "test1", "test2"]
_list2 = ["keyName", "test2", "test1"]

我正在尝试使用_list1重新排列_list2中的元素,以便它们完全匹配顺序。什么是最干净的方法?所需的输出:

_list1 = ["keyName", "test1", "test2"]
_list2 = ["keyName", "test1", "test2"]

很抱歉,如果这是重复的,但到目前为止,我只能使用压缩的sorted()方法找到数字列表的答案。

如果_list2是列表列表怎么办?

_list2 = [["test1", "test2", "keyName"], ["test2", "test1", "keyName"]]

所需输出:

_list2 = [["keyName", "test1", "test2"], ["keyName", "test1", "test2"]]

还有一个假设:如果我想使用_list1作为键对其他任何对象列表进行排序,该怎么办

_list2 = [[object1, object2, object3], [object1, object2, object3]]

哪里:

object1.Name = "keyName"
object3.Name = "test1"
object2.Name = "test2"

如此有效,我期望输出:

_list2 = [[object1, object3, objec1], [object1, object3, objec1]]

那可能吗?


问题答案:
In [84]: _list1 = ["keyName", "test1", "test2"]

In [85]: d = {k:v for v,k in enumerate(_list1)}

In [86]: _list2 = ["keyName", "test2", "test1"]

In [87]: _list2.sort(key=d.get)

In [88]: _list2
Out[88]: ['keyName', 'test1', 'test2']


 类似资料:
  • 问题内容: 我正在使用python 2.7.3,并且尝试根据另一个列表的值顺序对字典列表进行排序。 IE浏览器: 根据listOne中值的顺序对listTwo进行排序,结果如下: 我最终需要输出此文本,因此为正确显示(以正确的顺序)所做的工作如下: 是否有某种lambda表达式可用于实现此目的?必须有一种更紧凑,更简单的方法来按我想要的顺序来获取它。 问题答案: 最简单的方法是使用来为您的词典列表

  • 创建一个Java方法,它将列表作为参数(MasterList)并返回另一个列表(ExpectedList)。 列表中每个对象都有两个变量: null 我试图实现的逻辑是:当有多个ID相同的对象时,只考虑计数较大的特定对象。表示ID:有3个对象,所以我只考虑(ID:abc122,Count:20),因为在ID:abc122的对象中Count更高。在结束时,方法应返回

  • 问题内容: 我已经由我的用户组成。在数据库查询之后,我正在检索。我想根据第一个ID列表订购此列表。可能不包括某些ID。番石榴对列表进行排序的方式是什么? 问题答案: 使用番石榴的完全“功能性”方式将与 您可以内联声明一个匿名函数,但是我想在一个单独的类中将我的函数声明为静态工厂方法,以获取更简洁的代码(Java的函数声明的详细信息隐藏在实用程序类中): 正如@Arne在评论中提到的那样,可以在Ja

  • 问题内容: 我有一个这样的字符串列表: 使用Y中的值对X进行排序以获取以下输出的最短方法是什么? 具有相同“键”的元素的顺序无关紧要。我可以求助于for结构的使用,但我好奇是否有更短的方法。有什么建议么? 问题答案: 最短代码 例: 一般来说 解释: 两个。 创建一个新的,list基于zip使用排序sorted()。 使用列表推导从排序的,压缩的中提取每对的第一个元素list。

  • 我在下一件事上遇到了麻烦:我有一个arraylist中有数字,我想反转列表中的数字,比如,如果它有1 2 3,将arraylist中的值替换为3 2 1。为此,我创建了一个名为reordenar()的方法;它将第一个arraylist中的最后一个数字放在第二个arraylist中的第一个位置。完成后,我不知道如何让第一个arraylist用第二个arraylist替换它的数字。这是我写的代码。 那