飲歌長嘯
使用方法:lst = [8, 8, 9, 9, 7, 15, 15, 2, 20, 13, 2, 24, 6, 11, 7, 12, 4, 10, 18, 13, 23, 11, 3, 11, 12, 10, 4, 5, 4, 22, 6, 3, 19, 14, 21, 11, 1, 5, 14, 8, 0, 1, 16, 5, 10, 13, 17, 1, 16, 17, 12, 6, 10, 0, 3, 9, 9, 3, 7, 7, 6, 6, 7, 5, 14, 18, 12, 19, 2, 8, 9, 0, 8, 4, 5]并使用timeit模塊:$ python -m timeit -s 'import uniquetest' 'uniquetest.etchasketch(uniquetest.lst)'依此類推,對于其他各種功能(我以其發布者的名字命名),我得到了以下結果(在我的第一代Intel MacBook Pro上):Allen:? ? ? ? ? ? ? ? ? 14.6 μs per loop [1]Terhorst:? ? ? ? ? ? ? ?26.6 μs per loopTarle:? ? ? ? ? ? ? ? ? 44.7 μs per loopctcherry:? ? ? ? ? ? ? ?44.8 μs per loopEtchasketch 1 (short):? 64.6 μs per loopSchinckel:? ? ? ? ? ? ? 65.0 μs per loopEtchasketch 2:? ? ? ? ? 71.6 μs per loopLittle:? ? ? ? ? ? ? ? ?89.4 μs per loopTyler:? ? ? ? ? ? ? ? ?179.0 μs per loop[1]請注意,艾倫(Allen)修改了列表–我認為這會浪費時間,因為該timeit模塊運行代碼100000次,其中99999個使用的是非重復列表。摘要:具有集合的直接實現勝過令人困惑的一線:-)