【问题标题】:How to sort a list of tuples with by the second column of a nested list?如何按嵌套列表的第二列对元组列表进行排序?
【发布时间】:2020-09-08 18:04:39
【问题描述】:

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

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

任何帮助将不胜感激。

【问题讨论】:

  • sorted(array,key=lambda x:x[0][1])
  • 谢谢你,这有效。我将阅读如何在未来使用 lambda!

标签: python list sorting tuples


【解决方案1】:

以下代码可能对你有用,

代码:

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')]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-08
    • 1970-01-01
    • 2012-03-29
    • 1970-01-01
    • 1970-01-01
    • 2022-01-14
    • 2012-03-13
    • 2014-08-03
    相关资源
    最近更新 更多