按给定的自定义顺序对列表排序

Dor*_*hen 4 python sorting

我有一个元组列表

x = [('U', 3), ('R', 3)]
Run Code Online (Sandbox Code Playgroud)

我想按每个元组的第一个元素('U'或'R')的自定义顺序对列表进行排序

订单应该是:

order = ["R", "D", "L", "U"]
Run Code Online (Sandbox Code Playgroud)

所以我的例子的输出将是:

x = [('R', 3), ('U', 3)]
Run Code Online (Sandbox Code Playgroud)

我怎样才能在最佳时间内完成这项工作?谢谢

Ayu*_*ush 9

sorted(x, key=lambda x: order.index(x[0]))
Run Code Online (Sandbox Code Playgroud)

index() 将返回一个适当的可比较键(元组的第一个元素)

  • 请注意,如果值不在列表中,则会抛出异常 (3认同)