成语大全网 - 经典成语 - 请问这个Python代码中的第5,7,9行如何理解?谢谢!

请问这个Python代码中的第5,7,9行如何理解?谢谢!

d={}是初始化一个空的字典变量。

t是输入的名称组成的列表。for c in range(len(t)):就是遍历t列表的下标。

t[c]就是t列表中每一项,d[t[c]]=d.get(t[c],0)+1就是以t[c]作为键,d.get(t[c],0)+1作为值保存到字典中。其中d.get(t[c],0),get意思是取键值为t[c]的值,如果不存在就返回0。

所以d[t[c]]=d.get(t[c],0)+1的意思简单说:就是字典中如果存在键值t[c],则将其值+1,否则新建一个键t[c],值为1。

ls = list(d.items())意思是将字典d转换成一个由元祖组成的列表形式

ls.sort(key=lambda x:x[1], reverse=True)?这里是对上面的列表排序,由于列表包含元祖,所以key=lambda x:x[1]就是特指按列表每一项元祖的第二个元素进行排列。?reverse=True表示排序规则是逆序。

所以ls.sort(key=lambda x:x[1], reverse=True)的意思就是,将字典转换成的列表,按照字典值进行逆序排序。

for k in range(len(ls)):

zy,num=ls[k]这里就是遍历ls每项元祖,并将元祖第一个元祖赋值给zy,第二项赋值给num。

print("{}:{}".format(zy,num))如果是写在循环内,那zy,num=ls[k]这里的意思就是是将字典中键值对分别保存到遍历zy和num中,并打印。