【发布时间】:2020-02-05 07:47:54
【问题描述】:
我想先按键的长度对字典进行排序,然后再按值列表中的一个元素对字典进行排序。
到目前为止,我已经通过使用 lambda 排序接近了,但我遇到了问题,因为我的值是列表。文档不清楚如何处理这个问题(或至少据我所知)。
# What I have so far is:
d = {'ATCG': [1,2,3], 'ATTT':[1,3,5], 'GCT':[2,4,8], 'TCC': [4,5,6], 'AC':
[7,8,9]}
value_sort = sorted(d.items(), key=lambda item: item[0])
# this only sorts by the first item in my list-- how do I sort by
the third item in my list?
key_sort = sorted(value_sort, key=len, reverse=True)
# sorts by largest length key
for k in key_sort:
v = d[k[0]]
print(k[0) + ":" + str(v))
我希望输出的样子是:
ATCG:[1,2,3]
ATTT:[1,3,5]
TCC:[4,5,6]
GCT:[2,4,8]
AC:[7,8,9]
排序是按最大键,然后按我的值列表中最小的第三个值。
编辑:我让按键更清晰
【问题讨论】:
-
为了清楚起见,我对其进行了编辑。
标签: python string sorting dictionary