繁体   English   中英

按给定键值排序字典

[英]Ordering a dictionary by a given key value

我正在研究如何使用Python(我是新手)处理csv文件并下载下表 ,它有89个条目,各种奥斯卡给女性女演员。 当我想要特定的排序时,我在环绕字典中的键/值时遇到了问题...在这种情况下,按照年龄对女演员进行排序。

我已经尝试了一些在这里搜索的解决方案,但无法理解或将其应用于我的代码(目前非常简单)。 我所知道的是我的OrderedDict对象里面有一个字典,并且每个键都有一个元组值,例如:

[OrderedDict([('Index', '1'), ('Year', '1928'), ('Age', '22'), ('Name', 'Janet Gaynor'), ('Movie', 'Seventh Heaven, Street Angel and Sunrise: A Song of Two Humans')]).

当前代码只是将一切打印到控制台:

import csv

results = []

with open('oscar_age_female.csv') as File:
    reader = csv.DictReader(File)
    for row in reader:
        results.append(row)
    print(results)

为了正确读取csv,您需要添加skipinitialspace,否则正在解析其名称中包含逗号的电影。

import csv

results = []

with open('oscar_age_female.csv') as File:
    reader = csv.DictReader(File, skipinitialspace=True)
    for row in reader:
        results.append(row)

一旦添加了上述步骤,通过键对字典列表进行排序是微不足道的:

print(sorted(results, key=lambda k: k['Age']))  # Youngest to oldest
print(sorted(results, key=lambda k: k['Age'], reverse=True))  # Oldest to youngest

是一个关于按键排序dicts列表的好帖子

暂无
暂无

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

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