【发布时间】:2019-09-02 09:52:06
【问题描述】:
我正在寻找从第二个项目开始然后按第一个项目的元组列表。这不是来自Sort tuple by first then second then third 的重复,因为这篇文章是关于第一个然后第二个而不是第二个然后第一个。
来自 C# 背景,我会找到很多类似 OrderBy+ThenBy 的东西。
我可以自己编写并发布它。 Python 是包含电池的,我相信有更好的方法来实现这一点。
mcve 带有单元测试:
def sort_tuples_by_second(inputs):
return sorted(inputs, key=lambda item: item[1])
class TestStringMethods(unittest.TestCase):
# both passed
def test_sort_tuples_by_second(self):
tuples = [(1, 1), (1, 2), (1, 0), (0, 9)]
actuals = sort_tuples_by_second(tuples)
self.assertEqual(actuals, [(1, 0), (1, 1), (1, 2), (0, 9)])
letters = [("a", "a"), ("b", "c"), ("c", "b"), ("a", "z")]
actuals = sort_tuples_by_second(letters)
self.assertEqual(actuals, [("a", "a"), ("c", "b"), ("b", "c"), ("a", "z")])
# both failed
def test_sort_tuples_by_second_then_by_first(self):
tuples = [(1, 1), (4, 1), (3, 1), (1, 9), (0, 9)]
actuals = sort_tuples_by_second(tuples)
self.assertEqual(actuals, [(1, 1), (3, 1), (4, 1), (0, 9), (1, 9)])
letters = [("b", "a"), ("a", "a")]
actuals = sort_tuples_by_second(letters)
self.assertEqual(actuals, [("a", "a"), ("b", "a")])
【问题讨论】:
标签: python