【问题标题】:Python: Fetch first 10 results from a list [duplicate]Python:从列表中获取前 10 个结果 [重复]
【发布时间】:2012-06-09 11:20:37
【问题描述】:

有没有一种方法可以从列表中获取前 10 个结果。可能是这样的:

list = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]

list.fetch(10)

?

【问题讨论】:

    标签: python


    【解决方案1】:
    list[:10]
    

    将使用切片为您提供此列表的前 10 个元素。

    但是,请注意,最好不要使用list 作为变量标识符,因为它已被 Python 使用:list()

    要了解有关此类操作的更多信息,您可能会发现此 tutorial on lists 很有帮助,@DarenThomas 提供的链接 Explain Python's slice notation - 感谢 Daren)

    【讨论】:

    • 这是典型的答案。也在这里查看:stackoverflow.com/questions/509211/…
    • 这肯定是第一个答案的快速比赛 :) 该死的验证码!
    • @thg435 -- 这不会创建列表中元素的副本,只会创建对它们的新引用。但是,它确实会创建一个新列表...
    • @thg435 -- python 没有指针。 (如果你想要指针,你使用 C ;) python 有引用。这里的重点是你不创建新对象,只创建对它们的新引用......我们说的是同样的事情,但你原来的陈述的写法是误导(至少对我来说)所以我想我会澄清。
    • @mgilson:同意,我最好写“创建列表中该部分的副本”。
    【解决方案2】:

    使用切片操作符:

    list = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
    list[:10]
    

    【讨论】:

      【解决方案3】:

      检查一下

       list = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
      
       list[0:10]
      

      输出:

      [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
      

      【讨论】:

      • 显式 vs 隐式:使用显式,这种切片符合 python zen 代码! :) 更清晰。
      【解决方案4】:

      itertools 模块中有很多很棒的东西。因此,如果标准切片(Levon 使用的)不能满足您的要求,请尝试 islice 函数:

      from itertools import islice
      l = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
      iterator = islice(l, 10)
      for item in iterator:
          print item
      

      【讨论】:

      • list(islice(map((lambda x: x**2 + 1),count()),10)) 是常规切片不起作用的示例。
      猜你喜欢
      • 2017-03-25
      • 2016-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-03
      • 1970-01-01
      • 2011-05-25
      • 2013-09-15
      相关资源
      最近更新 更多