如何按嵌套列表的第二列对元组列表进行排序?

2024-10-02 08:19:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我有下面的元组列表,其中每个元组由一个列表和两个字符串组成。我希望根据元组中嵌套列表的第二列对元组列表进行排序。 示例阵列:

array = [([45, 56, '-'], 'CGUCAUAAAGUA', 'MKYC'), ([24, 38, '-'], 'GUAAGGUUUGCCGUA', 'MPFGM'), ([6, 26, '-'], 'CCCGGGGUACACAGUAAUGUA', 'M**HMGP')]

预期产出:

sortedTuples = [([6, 26, '-'], 'CCCGGGGUACACAGUAAUGUA', 'M**HMGP'), ([24, 38, '-'], 'GUAAGGUUUGCCGUA', 'MPFGM'),  ([45, 56, '-'], 'CGUCAUAAAGUA', 'MKYC')]

作为26 < 38 < 56

我尝试过以下代码:

sortedTuples = [sorted(list1, key = lambda x: x[1]) for list1, str1, str2 in array]

我得到了一个错误:

TypeError: 'int' object is not subscriptable

任何帮助都将不胜感激


Tags: 字符串代码示例列表排序array元组list1
1条回答
网友
1楼 · 发布于 2024-10-02 08:19:14

以下代码可能适用于您

代码:

def sort1(val):
    return val[0][1]

list1= [([45, 56, '-'], 'CGUCAUAAAGUA', 'MKYC'), ([24, 38, '-'], 'GUAAGGUUUGCCGUA', 'MPFGM'), ([6, 26, '-'], 'CCCGGGGUACACAGUAAUGUA', 'M**HMGP')]
list1.sort(key=sort1)
print(list1)

输出:

[([6, 26, '-'], 'CCCGGGGUACACAGUAAUGUA', 'M**HMGP'), ([24, 38, '-'], 'GUAAGGUUUGCCGUA', 'MPFGM'), ([45, 56, '-'], 'CGUCAUAAAGUA', 'MKYC')]

相关问题 更多 >

    热门问题