【问题标题】:Sort by elements of a list of tuples [duplicate]按元组列表的元素排序[重复]
【发布时间】:2018-03-26 02:26:47
【问题描述】:

我有一个元组列表或一个元组,我想像下一个示例那样交换元组:

>>> swap([('abc', 'bcd'), ('efg', 'zza')])
[('efg', 'zza'), ('abc', 'bcd')]

我想根据每个元组的第二个元素的第三个字符交换列表中的元组。

【问题讨论】:

  • 试试new_list = list(reversed(**put original list here**)
  • 尝试反转列表mylist[::-1]
  • 或 list_name[::-1]
  • 您是要反转列表还是交换值?在你的真实列表中,两个元组是否都以'abc' 开头?
  • 您找到(并尝试过)的所有东西到底是什么?

标签: python list tuples


【解决方案1】:

天哪,这是一个很大的 XY 问题。您想按每个元组的第二个元素的第三个字符进行排序。使用内置的 sorted 及其 kwarg key

lst = [('abc', 'bcd'), ('abc', 'zza')]
result = sorted(lst, key=lambda t: t[1][2])

key 这里接受一个函数,该函数依次给定每个元素,并对其进行比较。在这种情况下,它返回第二个元素的第三个元素 (t[1][2])。外部列表的每个元素都是一个元组。每个元组的第二个元素存在于索引1,每个第二个元素的第三个字符存在于索引2

【讨论】:

    猜你喜欢
    • 2012-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-28
    • 2016-03-17
    相关资源
    最近更新 更多