【发布时间】:2013-04-18 07:45:18
【问题描述】:
假设我有以下字典:
{"A":["u","w"],"B":["t"],"C":["x","y","z"]}
如何按每个值的列表中的字符串数对字典进行排序,以便它返回:
[("C",["x","y","z"]), ("A",["u","w"]), ("B":["t"])]
因为“C”的值在列表中有三个项目,“A”有两个,“B”有一个。我的想法是这样的:
sorted(d.items(),key=operator.methodcaller(len(),tuple[1]),reverse=True)
或者
sorted(d.items(),key=(string, stringList):(len(stringList),string),reverse=True)
但两者似乎都不起作用。对排序还是很陌生,所以感谢您的帮助!
【问题讨论】:
-
operator.methodcaller将字符串作为第一个参数,要调用的方法tuple[1]在您调用它时不存在。key也是一个函数,而不是一个元组。
标签: python sorting dictionary