【发布时间】:2023-01-05 01:18:03
【问题描述】:
我有一个工作代码块,但似乎应该有一个更有效的算法,大概是循环更少或使用库/模块。
此代码示例版本采用字符串列表,按 len() 反向排序,然后构建一个新列表:
gs = ["catan", "ticket to ride", "azul"]
mg = {}
for i in range(len(gs)):
mg[i] = len(gs[i])
popularity = {k: v for k, v in sorted(mg.items(), key=lambda v: v[1], reverse=True)}
tg = []
for game in popularity.keys():
tg.append(gs[game])
生产代码不会将 mg[i] 设置为 len() 并且列表中的元素不一定是字符串,但算法以其他方式工作。
为此,相同的输出是:
['ticket to ride', 'catan', 'azul']
如何提高该算法的效率?
【问题讨论】:
-
它应该是什么做到底?
-
按标准从最大数到最小数对列表进行排序。在这个例子中,数字是 len(mg[i])。我将添加样本输出