python字典统计排序 统计各省份大学数量
时间: 2023-09-25 18:00:11 浏览: 397
### 回答1:
可以使用collections库中的Counter类进行统计,然后使用sorted()函数进行排序。
示例代码:
```
from collections import Counter
universities = [{'province': '北京', 'name': '清华大学'},
{'province': '上海', 'name': '复旦大学'},
{'province': '北京', 'name': '北京大学'},
{'province': '四川', 'name': '电子科技大学'},
{'province': '上海', 'name': '上海交通大学'}]
province_count = Counter([university['province'] for university in universities])
sorted_province_count = sorted(province_count.items(), key=lambda x: x[1], reverse=True)
print(sorted_province_count)
```
输出结果为:
```
[('北京', 2), ('上海', 2), ('四川', 1)]
```
### 回答2:
要统计各省份大学的数量,并进行排序,可以使用Python中的字典进行操作。
首先,我们需要创建一个空的字典来存储各省份的大学数量。然后,我们可以遍历一个包含各个省份的列表或者集合,对于每个省份,我们可以将其作为字典的键,并将对应的大学数量作为值。如果某个省份已经在字典中存在,我们可以将其对应的值加1;如果某个省份尚未在字典中存在,我们可以将其添加到字典,并将对应的值初始化为1。
完成统计之后,我们可以使用Python中的sorted()函数对字典进行排序。sorted()函数可以接收一个字典作为参数,并返回一个按照字典键进行排序的键值对列表。我们可以将排序结果存储在一个新的列表中。
以下是一个简单的示例代码:
```
# 省份大学字典
provinces = ['北京市', '上海市', '江苏省', '广东省', '浙江省', '湖北省']
universities = {'北京市': 10, '上海市': 5, '江苏省': 7, '广东省': 8, '浙江省': 6, '湖北省': 4}
# 统计各省份大学数量
def count_universities():
university_counts = {}
for province in provinces:
if province in universities:
university_counts[province] = universities[province]
return university_counts
# 排序各省份大学数量
def sort_universities():
university_counts = count_universities()
sorted_universities = sorted(university_counts.items(), key=lambda x: x[1], reverse=True)
return sorted_universities
# 输出结果
sorted_universities = sort_universities()
for province, count in sorted_universities:
print(province, count)
```
运行以上代码,将输出按照大学数量从多到少的顺序,统计各个省份的大学数量。注意,以上示例只是一个简单的示范,实际情况中,我们可能需要根据具体的数据进行适当的修改。
### 回答3:
在使用Python进行字典统计排序时,可以通过遍历数据集并利用字典的特点来统计各省份的大学数量。
首先,可以创建一个空字典来存储省份和对应的大学数量。然后,遍历数据集,对每个大学所在的省份进行统计。
可以使用一个循环来遍历数据集中每个大学的省份信息。对于每个大学,可以先检查该省份是否已经在字典中存在。如果存在,则将对应的大学数量加1;如果不存在,则将该省份添加到字典中,并将大学数量初始化为1。
例如,假设数据集中的大学信息以列表形式表示为universities = ['北京大学', '北京', '上海交通大学', '上海', ...]。我们可以使用如下的代码来进行统计:
provinces = {}
for i in range(0, len(universities), 2):
university = universities[i]
province = universities[i+1]
if province in provinces:
provinces[province] += 1
else:
provinces[province] = 1
在上述代码中,使用range函数生成了一个步长为2的循环来遍历大学列表。每次循环,我们提取出大学和省份信息,并对省份进行统计。
统计完成后,我们可以通过字典的items方法将字典转换为一个包含省份和大学数量的元组列表。然后,可以使用sorted函数对元组列表根据大学数量进行排序。
sorted_provinces = sorted(provinces.items(), key=lambda x: x[1], reverse=True)
将以上代码与上面的统计代码连接起来,即可实现对各省份大学数量的统计和排序。
这样,我们就可以得到按照大学数量由多到少排序的各省份列表。
阅读全文