- 问题:读取键盘输入结果,创建n个键值对,将其排序后放入有序字典并输出。
- 详细描述:根据提示,实现函数功能:读取n(n>0)行输入,以每一行的数据为key,行号(从0开始)为value,建立n对键值对,然后将他们按照key排序后,放入一个有序字典,最后输出这个有序字典。
点击查看代码
import collections
def Func():
pairs = []
n = int(input())
for s in range(n):
k = input()
# ********** Begin ********** #
# 根据描述,创建一个变量用来存储输入的元素名称,和序号,可观察题目输出结果为元祖,
tup = tuple([k, s])
# 将此元祖打包到列表中,使用列表的append方法
pairs.append(tup)
# 创建有序字典(用于存放字典的处理结果),对此列表元素,使用key函数,获取需要排序的元素并使用lambda表达式取出元祖中第一个元素,,调用自带的sorted方法(按值的大小默认升序)返回此排序结果
od = collections.OrderedDict(sorted(pairs, key=lambda s: s[0]))
# ********** End ********** #
print(od)
Func()