Python中,用排序构建映射可以使用内置的sorted()函数和zip()函数完成。具体方法是将需要构建映射的两个列表先按照某一关键词进行排序,然后使用zip()函数将已排序的两个列表一一对应起来,最后以字典的形式返回对应关系。
以下是使用方法的完整攻略:
排序构建映射
使用排序构建映射的一般流程为:
- 通过sorted()函数将需要构建映射的两个列表分别按照某一关键词进行排序,并生成两个新的已排序的列表。
- 使用zip()函数将已排序的两个列表一一对应起来。
- 将对应关系以字典的形式返回。
例如,现在有两个列表,一个列表记录了人名,另一个列表记录了人名对应的年龄,需要将两个列表合并成一个字典,其中人名为键,年龄为值。以下是示例代码:
names = ['Tom', 'Jerry', 'Lucy', 'Lily']
ages = [23, 21, 25, 22]
name_age_dict = dict(zip(names, ages))
print(name_age_dict)
输出结果为:
{'Tom': 23, 'Jerry': 21, 'Lucy': 25, 'Lily': 22}
在上面的示例代码中,首先将names和ages两个列表分别按照字母顺序和年龄大小进行排序,然后使用zip()函数将已排序的两个列表一一对应起来,最后通过dict()函数将对应关系转化为字典类型。
另外一个示例代码,现有一个字典,需要将字典中的键值对按照某个关键词进行排序,并将排序后的键值对存入一个新的字典中。以下是示例代码:
scores = {'Tom': 75, 'Jerry': 88, 'Lucy': 92, 'Lily': 85}
sorted_scores = sorted(scores.items(), key=lambda x: x[1], reverse=True)
sorted_scores_dict = dict(sorted_scores)
print(sorted_scores_dict)
输出结果为:
{'Lucy': 92, 'Jerry': 88, 'Lily': 85, 'Tom': 75}
在上面的示例代码中,首先使用items()函数将原字典中的键值对提取出来,然后通过sorted()函数将键值对按照分数大小进行排序,最后使用dict()函数将排序后的键值对转化为字典类型。其中,lambda函数用于指定排序的关键词,reverse参数表示是否逆序排列。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python 用排序构建映射 - Python技术站