【发布时间】:2018-10-10 00:03:17
【问题描述】:
我有一本字典
dict = {key: [a, b, c, d]}
key是一个str,a是一个数字,b是一个数字,c是一个数字,d是一个数字。
如何打印我的字典,首先按 d 中的数字排序,然后按键中字符串的长度(最大在前)?
我尝试使用类似的东西...
for key in sorted(dict.items(), key=lambda x: (-len(x[0]), x[1][3])):
但我不断收到属性错误。
【问题讨论】:
-
确切的错误消息是什么(编辑问题以将其显示为格式正确的文本)?
-
欢迎来到 StackOverflow。请按照您创建此帐户时的建议阅读并遵循帮助文档中的发布指南。 Minimal, complete, verifiable example 适用于此。在您发布 MCVE 代码并准确描述问题之前,我们无法有效地帮助您。我们应该能够将您发布的代码粘贴到文本文件中并重现您描述的问题。由于未定义的变量,您发布的代码无法执行。
-
sorted(your_dict.items(), key=lambda t: (t[1][-1], len(t[0]))) -
@dawg:他们首先想要最长的密钥(等于
d),所以添加一个-使其成为-len(t[0])。 -
@ShadowRanger:是的——我在回答中解决了这个问题。谢谢!
标签: python python-3.x algorithm sorting bioinformatics