【问题标题】:List of tuples in Python sort by one of the valuesPython中的元组列表按其中一个值排序
【发布时间】:2015-10-22 05:59:13
【问题描述】:

我有一长串像这样的元组:

[(169, 8), (170, 1), (170, 4), (170, 8), (171, 8), (172, 8), (173, 8), (174, 8), (175, 6), (175, 8), (176, 6), (176, 8), (177, 6), (177, 8), (178, 6), (178, 8), (179, 6), (179, 8), (180, 1), (180, 6), (180, 8), (181, 6), (181, 8), (183, 1), (183, 4), (183, 6), (183, 8), (184, 6)..]

我只需要通过选择最高的第二个值来消除第一个值的重复,如下所示:

[(169, 8), (170, 8), (171, 8), (172, 8), (173, 8), (174, 8), (175, 8), (176, 8),  (177, 8), (178, 8), (179, 8), (180, 8), (181, 8), (183, 1), (183, 8), (184, 6)..]

8 并不总是列表中的最大值。

【问题讨论】:

  • SO 不是代码编写服务,如果您想获得正确的答案,您需要使用迄今为止尝试过的代码更新您的问题。

标签: python list sorting duplicates tuples


【解决方案1】:

以下应该可以解决问题:

l = [(169, 8), (170, 1), (170, 4), (170, 8), (171, 8), (172, 8)]
print dict(sorted(l)).items()

结果:

[(169, 8), (170, 8), (171, 8), (172, 8)]

这个想法是首先对列表进行排序,然后根据排序的元组创建一个字典。字典的键将是第一项。由于排序顺序,第二个最高值将替换同一键的任何其他值。然后使用items,我们再次将结果字典转换为元组。

【讨论】:

    猜你喜欢
    • 2018-12-01
    • 1970-01-01
    • 2017-05-26
    • 2019-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-21
    • 2018-01-17
    相关资源
    最近更新 更多