【问题标题】:Sorting a list in Python containing tuples with Selection Sort在 Python 中使用选择排序对包含元组的列表进行排序
【发布时间】:2015-06-01 01:31:35
【问题描述】:

我想使用选择排序对以下列表进行排序:

list1 = [(1,2,3),(3,6,4),(4,7,9)]

如何按每个元组 (2,6,7) 的第二个元素对上述内容进行排序?

我有以下用于正常选择排序的代码,但我现在知道如何使用元组。

def selection_sort(list):
    for i in range(len(list)):
        mini = min(list[i:])
        min_index = list[i:].index(mini)
        list[i + min_index] = list[i] 
        list[i] = mini

【问题讨论】:

  • 请注意,mini 现在需要成为 list 中的项目(不要将您自己的变量命名为 list),第二个元素最小 - 请参见 @ 987654321@
  • 请问我为什么不应该有?
  • 元组在哪里?
  • 抱歉,这是一个打字错误,现在已修复。

标签: python sorting selection


【解决方案1】:

您可以告诉min 使用第二个元素进行比较:

mini = min(list[i:], key=lambda l: l[1])

顺便说一句,调用你的变量list 是不好的,因为那样你就不能再使用 Python 自己的 list 了,因为你让每个人都感到困惑。此外,您甚至没有将其设为列表,而是将其设为元组,从而阻止了您正在尝试的就地排序。

【讨论】:

  • 非常感谢您的回答,括号是我的错误。
  • 如果您强烈希望将变量命名为 list,请改用 llist_
猜你喜欢
  • 1970-01-01
  • 2010-10-29
  • 1970-01-01
  • 1970-01-01
  • 2010-09-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-17
相关资源
最近更新 更多