排序化学和系数的元组

use*_*174 1 python

可能重复:
如何对列表/元组进行排序(列表/元组)?

我有一个元组列表,我想按元组中的第二个值按数字顺序排序.我正在使用的列表示例是:

[('H2O', '6'), ('O2', '4')]
Run Code Online (Sandbox Code Playgroud)

所以在这种情况下我想要的是:

[('O2','4'),('H2O',6')]
Run Code Online (Sandbox Code Playgroud)

我知道这是非常基本的,我似乎可以解决它.

int*_*jay 7

使用key参数sort:

mylist.sort(key = lambda x: int(x[1]))
Run Code Online (Sandbox Code Playgroud)

这会将元组中的第二个元素转换为整数,并按这些整数排序.

由于元组在第二个元素中包含数字,因此将数字存储在元组中而不是字符串更有意义.如果您这样做,您可以使用以下方式排序:

import operator
mylist.sort(key = operator.itemgetter(1))
Run Code Online (Sandbox Code Playgroud)