相关疑难解决方法(0)

根据两个元素对元组列表进行排序

可能重复:
python:如何在两个不同的键上对复杂列表进行排序

我有一个元组列表.我想根据两个元素对它们进行排序.以下是示例

unsorted = [('a', 4, 2), ('a', 4, 3), ('a', 7, 2), ('a', 7, 3), ('b', 4, 2), ('b', 4, 3), ('b', 7, 2), ('b', 7, 3)]
sorted   = [('a', 4, 2), ('b', 4, 2), ('a', 4, 3), ('b', 4, 3), ('a', 7, 2), ('b', 7, 2), ('a', 7, 3), ('b', 7, 3)]
Run Code Online (Sandbox Code Playgroud)

我知道如何在第二个元素上对它们进行排序:

sorted(unsorted, key = lambda element : element[1])
Run Code Online (Sandbox Code Playgroud)

但如何用两把钥匙做到这一点?

python sorting tuples python-3.x

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

用另外两个列表在Python中对列表进行排序

我的问题与这两个链接12非常相似:

我有三个不同的列表.我想基于List2对List1进行排序(按升序排序).但是,我在List2中重复了一遍.然后我想按List3对这些重复进行排序(按降序排列).足够困惑?

是)我有的:

List1 = ['a', 'b', 'c', 'd', 'e']
List2 = [4, 2, 3, 2, 4]
List3 = [0.1, 0.8, 0.3, 0.6, 0.4]
Run Code Online (Sandbox Code Playgroud)

我想要的是:

new_List1 = ['b', 'd', 'c', 'e', 'a']
Run Code Online (Sandbox Code Playgroud)

'b'出现在'd'之前,因为0.8> 0.6.'e'出现在'a'之前,因为0.4> 0.1.

有帮助吗?

谢谢!

python sorting list

12
推荐指数
2
解决办法
1559
查看次数

使用两个键排序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
查看次数

Python排序两个键两个顺序

这是这种情况,我有一个列表:

[(1, a), (1, b), (5, c)]

我想对列表进行排序,以便它首先取决于降序的数字,然后是升序的字符。

我试过:

sorted(theList, key = lambda x:(x[0], x[1]), reverse = True)
Run Code Online (Sandbox Code Playgroud)

但是结果在两个键中都是按降序排列的。显然,反向只采用一个变量,我在网上搜索并找不到解决方案。请帮忙!谢谢!

python sorting python-3.x

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

标签 统计

python ×4

sorting ×4

python-3.x ×2

tuples ×2

key ×1

list ×1