Python:如何从10个列表中获得前5个或后5个?

Python:如何从10个列表中获得前5个或后5个?,python,list,limit,Python,List,Limit,下面是对象列表(10)。 而不是再次点击数据库,这次执行(5)将5放入另一个变量。我将如何在下面编写它来检查变量搜索,从而从中得到10 searches = self.get_recent_searches(10) dic['recents'] = searches ## 10 objects ##dic['recent'] = self.get_recent_searches(5) dic['recent'] = searches.get 5 from this list 搜索: 如果我理解

下面是对象列表(10)。 而不是再次点击数据库,这次执行
(5)
将5放入另一个变量。我将如何在下面编写它来检查变量搜索,从而从中得到10

searches = self.get_recent_searches(10)
dic['recents'] = searches ## 10 objects
##dic['recent'] = self.get_recent_searches(5)
dic['recent'] = searches.get 5 from this list
搜索:


如果我理解正确,您可以使用slice,如:

dic['recents'] = searches[:10]
切片用于获取列表的一部分,格式如下:

content[begin : end]
Python列表是基于零索引的。结果中包含begin(th)元素,而end(th)元素是exlusive。如果要首先搜索i个元素,请使用搜索[:i]。如果需要最后一个i元素,那么搜索[-i:]可以很好地工作


希望对你有帮助

要获取前五项,您可以使用
搜索[:5]
,该搜索从开头开始,进入(但不包括)元素5。要获取最后五个项目,您可以使用
搜索[-5:]
,它从项目-5开始(翻译为从末尾算起的第五个项目),一直到列表的末尾。

看起来
搜索
是一本字典,因此您可能需要再遵守一次,即

searchdict = self.get_recent_searches(10)
searches = searchdict['searches']

dic['recent'] = searches[:5]

要从列表中找出第一个或最后5个,您可以使用列表理解。见下文:

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

#puts first 5 elements in new list
first_five = [x for x in my_list[0:5]]
print first_five

#puts elements after index 5 into new list
last_five = [x for x in my_list[5:]]
print last_five

当我尝试这样做时,我得到了
TypeError:unhabable type
:(这个列表理解只是做
my_list[:5]
的一个较长版本,我认为它并没有增加任何内容。此外,如果列表中只有十个项目,您的第二个解决方案将不起作用(尽管我想在这个特定示例中可以保证这一点)。第二个语句正是我的意图,注释应该解释它。索引5处的对象之后的所有元素都将放在新列表中。好的,在这种情况下,您的预期解决方案只有在您正好有10个元素时才有效,因此它没有其他建议那么有用。您可以显示搜索类型吗?键入(searches)。如果是dict,您只需要该值,因为searches=self。如Corley Brigman所说,get_recent_searches(10)[“searches]”。