Python:用字典键值pai中的值替换value

2024-05-20 21:37:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我为此绞尽脑汁已经好几个小时了。我试图将1-30的犯罪编号替换为相应的犯罪类型,即盗窃、盗用、入室盗窃等,然后将其归类到一个列表中。在

以下是我当前的输出示例:

冒犯:受害者总数

1 189
10 712
11 1844
12 184
13 147
14 4364
15 595
16 175
17 387
18 2893
2 597
20 661

以下是我目前掌握的代码。进攻地图字典是我想用它来替换输出中的1-30到进攻类型。然后按从最大受害者计数(右列)到最小的降序对列表进行排序。我正在处理大约100000行的数据,因此效率对于这个程序很重要。在

^{pr2}$

Tags: 数据代码示例类型列表字典排序地图
2条回答

要获取victims_by_offense中按受害者总数降序排列的密钥列表:

victims_by_offense = {'1': 189, '10': 712, '11': 1844, '12': 184, '13': 147, '14': 4364, '15': 595, '16': 175, '17': 387, '18': 2893, '2': 597, '20': 661}
sorted_keys = sorted(victims_by_offense, key=victims_by_offense.get, reverse=True)

那么

^{pr2}$

我明白了

('Property Damage', 4364)
('Possession/Sale/Dist', 2893)
('Fraud', 1844)
('Forgery', 712)
('Family Offense', 661)
('Rape', 597)
('Weapons Law Violation', 595)
('Sex Offense Other', 387)
('Homicide', 189)
('Embezzlement', 184)
('Prostitution', 175)
('Stolen Property', 147)
('Homicide', 189)
('Embezzlement', 184)
('Prostitution', 175)
('Stolen Property', 147)

我稍微修改了代码,使用csv.reader对象,而不是剥离和拆分自己,并将数据结构改为

crimes = {report_no: {'offense': offense_number,
                      'zip': zip_code,
                      'victims': victim_count},
          ...}

但我认为这样做效果更好。在

^{pr2}$

相关问题 更多 >