我想根据以下逻辑有条件地从python列表中提取值:
ll = [2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015]
我想在给定值前后提取3个值。e、 g.如果输入为2007,则输入前的3个值为:2004、2005、2006,输入后的3个值为:2008、2009、2010。如果输入是2014,那么我想在之前提取5个值,在之后提取1个值(总共6个值)。你知道吗
我可以用for循环来做这个,但是有没有更适合python的解决方案呢?你知道吗
使用切片:
列表切片就是为了这个,正如Daniel提到的。因为你所要求的不是一个标准用例,所以你必须编写你自己的函数。我找到了两种方法。你知道吗
第一种方法简单地区分了五种可能的情况,并相应地应用了列表切片。请注意,这里的if系列只起作用,因为return语句退出函数。它基本上等同于if else。你知道吗
通过巧妙地使用
ll.remove()
,第二个函数的代码行较少,但理解起来有点困难。你知道吗两个都可以。你知道吗
相关问题 更多 >
编程相关推荐