【问题标题】:How to sort this list effectively? [duplicate]如何有效地对该列表进行排序? [复制]
【发布时间】:2021-06-02 13:45:30
【问题描述】:

我有以下输入:

list = ["A-g(x)|**B**","J-Gustav-add(y)|**f**(g(y))","V|**A**"]

“-”表示下一个“单词”是新单词,“|”表示将每个字符串分成两部分(首先 |第二个。

输出应该是按第二部分排序的列表。

输出:

list = ["V|**A**","A-g(x)|**B**","J-Gustav-add(y)|**f**(g(y))"]

我只是找不到一种方法来制作这种不错的方法,只有蛮力出现在我的脑海中

【问题讨论】:

标签: python algorithm


【解决方案1】:
l = ["A-g(x)|B","J-Gustav-add(y)|f(g(y))","V|A"]

print(sorted(l, key=lambda a:a.split("|")[1]))
# ["V|**A**","A-g(x)|**B**","J-Gustav-add(y)|**f**(g(y))"]

您可以使用sorted() 选择键对其进行排序。由于键位于"|" 的右侧,因此我将字符串一分为二并选择索引一。这样可以正确排序。请记住,sorted 返回一个新列表,而list.sort 将修改该列表。两者的工作方式完全相同。

注意:尽量不要在您的代码中隐藏像 list 这样的内置名称。由于您覆盖了内置,它可能会导致经常出现错误。

【讨论】:

    猜你喜欢
    • 2023-03-20
    • 2021-03-14
    • 1970-01-01
    • 1970-01-01
    • 2012-12-10
    • 1970-01-01
    • 1970-01-01
    • 2021-09-11
    相关资源
    最近更新 更多