rat_nreads = sorted([(self.markers2lens[m],n) for m,n in self.markers2nreads.items()],key = lambda x: x[1])
rat_nreads, removed = [], []
我看到了这段代码,真的很困惑;如果在排序后立即将rat_nreads
分配给一个空列表,那么将它分配给一个空列表有什么意义呢?第一行实际上是否以任何方式改变self.markers2nreads.items()
?在
Tags:
这些项保留在内存中的相同位置,但会创建一个新列表:
希望这有帮助。。在
否,
sorted
创建一个新列表。在所以你发布的代码没有意义。在
它不能改变,因为你有一个列表理解来使用它。在
注意事项:
sorted
是没有意义的。sorted(((self.markers2lens[m],n) for m,n in self.markers2nreads.items()),key = lambda x: x[1])
使用生成器效率更高,没有临时列表。在dict.iteritems()
,因为dict.items()
也会创建一个不需要的列表。在要对列表进行适当排序,需要执行以下操作:
相关问题 更多 >
编程相关推荐