sorted函数两次调用zip生成对象后输出为空

来源:2-4 如何根据字典中值的大小, 对字典中的项排序

otod123

2018-11-29

# -*- coding: utf-8 -*

from random import  randint

dic  = {x : randint(60,100) for x in 'xyzabc'}

print (dic)

re = zip(dic.values(),dic.keys())

print(sorted(re))

print (sorted(re,reverse = True))


#老师,请问一下,这段代码中为什么最后一个print输出的是空列表



写回答

2回答

程序员硕

2018-12-10

re是迭代器, 第一次sorted把它消耗了, 第二次就空了.

1
0

Lchyang

2018-11-30

因为你第一次调用的时候没有把sorted(re)这个对象赋值给另一个参数,然后python的垃圾回收机制把这个对象回收了,所以你第二次调用的时候为None  s= sorted(re)) print(s)这样就可以了

0
0

Python高效编程技巧实战

精选50个Python案例,源自实战,全面提升Python编程能力

2582 学习 · 360 问题

查看课程