相关疑难解决方法(0)

使用两个键排序Python列表,但只有一个按相反顺序排序

我想知道用两个键对元组列表进行排序的Pythonic方法是什么,其中用一个(并且只有一个)键进行排序将是相反的顺序,而用另一个键进行排序将不区分大小写.更具体地说,我有一个包含元组的列表:

myList = [(ele1A, ele2A),(ele1B, ele2B),(ele1C, ele2C)]
Run Code Online (Sandbox Code Playgroud)

我可以使用以下代码用两个键对其进行排序:

sortedList = sorted(myList, key = lambda y: (y[0].lower(), y[1]))
Run Code Online (Sandbox Code Playgroud)

要按相反顺序排序,我可以使用

sortedList = sorted(myList, key = lambda y: (y[0].lower(), y[1]), reverse = True)
Run Code Online (Sandbox Code Playgroud)

但这会按两个键的相反顺序排序.

任何提示都非常感谢.

python sorting tuples key

9
推荐指数
3
解决办法
4906
查看次数

根据元组的值以不同的顺序对元组列表进行排序

当我们想要对元组列表进行排序时,每个元组的长度都是 3(全部递增),我们对以下代码进行修改

ts = [(7, 14, 5), (3, 12, 9), (20, 22, 8), (20, 23, 24), (3, 12, 8), (4, 5, 7), (4, 5, 6), (4, 22, 17)]
ts.sort(key=lambda t: (t[0], t[1], t[2]))
Run Code Online (Sandbox Code Playgroud)

我的意思是,最初比较位置零的元素,元组中的零元素越低,它越接近开头。如果两个元组在位置 0 处具有相同的值,则第二个元素较低的元素将更靠近左侧。如果两个元组具有相同的第二个元素,则考虑元组中的第三个元素。

所以上面代码的输出是

Output: [(3, 12, 8), (3, 12, 9), (4, 5, 6), (4, 5, 7), (4, 22, 17), (7, 14, 5), (20, 22, 8), (20, 23, 24)]
Run Code Online (Sandbox Code Playgroud)

但是,如果我想在某些情况下(不是全部)反转顺序,例如比较第一个元素,并且如果一个元组的第一个元素较小,则它在排序列表中的位置较早,该怎么办?但如果第一个元素相同,则第一个元素较大的元组将在列表中靠前。如果元组中的第二个元素相同,则第一个元素较大的元组将在列表中靠前。

这也可以描述为:

  • 首先考虑元组中的第一个元素,按升序对它们进行排序

  • 如果元组中的第一个元素相同,则按降序对它们进行排序

  • 如果元组中的第二个元素相同,则按降序对它们进行排序

所以,我提供的输入应该是

Output: [(3, 12, 9), (3, 12, …
Run Code Online (Sandbox Code Playgroud)

python tuples

3
推荐指数
1
解决办法
2541
查看次数

如何按第二个元素但有条件对元组列表进行排序

假设我有这个元组列表:

[(30, 'B'), (50, 'B'), (40, 'C'), (10, 'A'), (80, 'A'), (5, 'A')]
Run Code Online (Sandbox Code Playgroud)

我需要按元组的第二个元素按降序对元组进行排序,但条件是具有相同第二个元素的所有元组都彼此相邻。

所以,它应该看起来像

[(80, 'A'), (10, 'A'), (5, 'A'), (50, 'B'), (30, 'B'), (40, 'C')]
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

python tuples list

2
推荐指数
1
解决办法
637
查看次数

如何按降序排序元组列表,并在python 3中按字母顺序排序?

如果我有一个元组列表,第一个是数字,第二个是字符串,例如:

[(2, 'eye'), (4, 'tail'), (1, 'scarf'), (4,'voice')]
Run Code Online (Sandbox Code Playgroud)

如何按数字降序排序,如果在任何点都有数字,那么具有相同数字的单词应按字母顺序排序.并返回最终排序的单词.

从我的例子来看:

['tail', 'voice', 'eye', scarf']
Run Code Online (Sandbox Code Playgroud)

我按降序对它们进行了排序,但我不知道如何按字母顺序对它进行分类.很高兴听到任何暗示和回答.谢谢!

def sorting(list)
   my_list = []
   for x, y in list.items():
     my_list+=[(y,x)]
   sort=sorted(my_list, reverse=True)
Run Code Online (Sandbox Code Playgroud)

python sorting python-3.x

1
推荐指数
1
解决办法
1493
查看次数

标签 统计

python ×4

tuples ×3

sorting ×2

key ×1

list ×1

python-3.x ×1