繁体   English   中英

如何对字典值进行排序?

[英]How does one sort dictionary values?

有没有办法按多个值对字典进行排序(并返回)? 下面返回列表中的值。 我想改进下面的内容并返回键,以便返回的数据结构是一个排序的字典。

df = pd.DataFrame([[-1,1,-1,3,1,2]], index = 
                     pd.date_range(start = '2022-02-07', periods =1, name = 'Date'))

df.columns = pd.MultiIndex.from_tuples((("IINN", "s"), ("IINN", "count"), 
                     ("GII", "s"), ("GII","count"),("HCM","s"), ("HCM", "count")))


dct={c:df[c] for c in df.columns.levels[0]}

sorted(dct.values(),key = lambda item: (item['s'][-1],item['count'][-1]), reverse=True)


[            s  count
 Date
 2022-02-07  1      2,
             s  count
 Date
 2022-02-07 -1      3,
             s  count
 Date
 2022-02-07 -1      1]
from operator import itemgetter
from typing import Any, Iterator


DCT = {
    'foo': 1,
    'bar': 2,
    'spamm': 0
}


print(DCT)


def sort_by_values(dct: dict) -> Iterator[tuple[Any, Any]]:
    """Yields dict items sorted by their values."""
    
    for key, value in sorted(dct.items(), key=itemgetter(1)):
        yield key, value


for key, value in sort_by_values(DCT):
    print(key, value)


print(dict(sort_by_values(DCT)))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM