Skip to main content
 首页 » 编程设计

python之使用 .sort 时对列表进行排序时出错,但在 Python 中使用 sorted() 函数时则不会

2025年05月04日10bjzhanghao

<分区>

这是代码,很简单,只是看起来有很多代码:

from collections import namedtuple 
 
# make a basic Link class 
Link = namedtuple('Link', ['id', 'submitter_id', 'submitted_time', 'votes', 
                           'title', 'url']) 
 
# list of Links to work with 
links = [ 
    Link(0, 60398, 1334014208.0, 109, 
         "C overtakes Java as the No. 1 programming language in the TIOBE index.", 
         "http://pixelstech.net/article/index.php?id=1333969280"), 
    Link(1, 60254, 1333962645.0, 891, 
         "This explains why technical books are all ridiculously thick and overpriced", 
         "http://prog21.dadgum.com/65.html"), 
    Link(23, 62945, 1333894106.0, 351, 
         "Learn Haskell Fast and Hard", 
         "http://yannesposito.com/Scratch/en/blog/Haskell-the-Hard-Way/"), 
    Link(2, 6084, 1333996166.0, 81, 
         "Announcing Yesod 1.0- a robust, developer friendly, high performance web framework for Haskell", 
         "http://www.yesodweb.com/blog/2012/04/announcing-yesod-1-0"), 
    Link(3, 30305, 1333968061.0, 270, 
         "TIL about the Lisp Curse", 
         "http://www.winestockwebdesign.com/Essays/Lisp_Curse.html"), 
    Link(4, 59008, 1334016506.0, 19, 
         "The Downfall of Imperative Programming. Functional Programming and the Multicore Revolution", 
         "http://fpcomplete.com/the-downfall-of-imperative-programming/"), 
    Link(5, 8712, 1333993676.0, 26, 
         "Open Source - Twitter Stock Market Game - ", 
         "http://www.twitstreet.com/"), 
    Link(6, 48626, 1333975127.0, 63, 
         "First look: Qt 5 makes JavaScript a first-class citizen for app development", 
         "http://arstechnica.com/business/news/2012/04/an-in-depth-look-at-qt-5-making-javascript-a-first-class-citizen-for-native-cross-platform-developme.ars"), 
    Link(7, 30172, 1334017294.0, 5, 
         "Benchmark of Dictionary Structures", "http://lh3lh3.users.sourceforge.net/udb.shtml"), 
    Link(8, 678, 1334014446.0, 7, 
         "If It's Not on Prod, It Doesn't Count: The Value of Frequent Releases", 
         "http://bits.shutterstock.com/?p=165"), 
    Link(9, 29168, 1334006443.0, 18, 
         "Language proposal: dave", 
         "http://davelang.github.com/"), 
    Link(17, 48626, 1334020271.0, 1, 
         "LispNYC and EmacsNYC meetup Tuesday Night: Large Scale Development with Elisp ", 
         "http://www.meetup.com/LispNYC/events/47373722/"), 
    Link(101, 62443, 1334018620.0, 4, 
         "research!rsc: Zip Files All The Way Down", 
         "http://research.swtch.com/zip"), 
    Link(12, 10262, 1334018169.0, 5, 
         "The Tyranny of the Diff", 
         "http://michaelfeathers.typepad.com/michael_feathers_blog/2012/04/the-tyranny-of-the-diff.html"), 
    Link(13, 20831, 1333996529.0, 14, 
         "Understanding NIO.2 File Channels in Java 7", 
         "http://java.dzone.com/articles/understanding-nio2-file"), 
    Link(15, 62443, 1333900877.0, 1244, 
         "Why vector icons don't work", 
         "http://www.pushing-pixels.org/2011/11/04/about-those-vector-icons.html"), 
    Link(14, 30650, 1334013659.0, 3, 
         "Python - Getting Data Into Graphite - Code Examples", 
         "http://coreygoldberg.blogspot.com/2012/04/python-getting-data-into-graphite-code.html"), 
    Link(16, 15330, 1333985877.0, 9, 
         "Mozilla: The Web as the Platform and The Kilimanjaro Event", 
         "https://groups.google.com/forum/?fromgroups#!topic/mozilla.dev.planning/Y9v46wFeejA"), 
    Link(18, 62443, 1333939389.0, 104, 
         "github is making me feel stupid(er)", 
         "http://www.serpentine.com/blog/2012/04/08/github-is-making-me-feel-stupider/"), 
    Link(19, 6937, 1333949857.0, 39, 
         "BitC Retrospective: The Issues with Type Classes", 
         "http://www.bitc-lang.org/pipermail/bitc-dev/2012-April/003315.html"), 
    Link(20, 51067, 1333974585.0, 14, 
         "Object Oriented C: Class-like Structures", 
         "http://cecilsunkure.blogspot.com/2012/04/object-oriented-c-class-like-structures.html"), 
    Link(10, 23944, 1333943632.0, 188, 
         "The LOVE game framework version 0.8.0 has been released - with GLSL shader support!", 
         "https://love2d.org/forums/viewtopic.php?f=3&amp;t=8750"), 
    Link(22, 39191, 1334005674.0, 11, 
         "An open letter to language designers: Please kill your sacred cows. (megarant)", 
         "http://joshondesign.com/2012/03/09/open-letter-language-designers"), 
    Link(21, 3777, 1333996565.0, 2, 
         "Developers guide to Garage48 hackatron", 
         "http://martingryner.com/developers-guide-to-garage48-hackatron/"), 
    Link(24, 48626, 1333934004.0, 17, 
         "An R programmer looks at Julia", 
         "http://www.r-bloggers.com/an-r-programmer-looks-at-julia/")] 
 
 
def query(): 
    return_list = [link for link in links if link.submitter_id == 62443] 
    return_list = sorted(return_list, key=lambda var: var.submitted_time) 
 
    return return_list 
 
query() 

所以,这就是问题所在,每当我使用上面的代码时,它都能正常工作,但是每当我这样做时,在 query() 函数中它都会给我一个问题:

return_list = [link for link in links if link.submitter_id == 62443].sort(key=lambda var: var.submitted_time) 

现在,我不知道为什么,因为对我来说这两个看起来是一样的。当我尝试使用 .sort() 执行此操作时,我得到 None 作为我的列表(我尝试对其进行迭代),这很奇怪。如何使用 Python 中的“.sort()”方法获取所需的列表?

我在 Windows 8 上使用 Python 2.7.5。