def every_third(lst):
'''
every_third that takes a list as a parameter and returns
a new list that contains every third element of the original
list, starting at index 0.
>>> every_third([1,2,3,4,5,6,7,8,9,10])
[1,4,7,10]
我该怎么做?我知道我们可以使用for循环,但我只是不知道如何开始。
答案 0 :(得分:0)
如果所有<div ng-controller="CreateSpreadsheetCtrl as csCtrl" ng-init="csCtrl.init()">
<select multiple="multiple" style="height:100px;" class="form-control"
ng-model="csCtrl.Template.BusinessUnitMappings"
ng-options="department as department.LocalizedName for department in csCtrl.DepartmentMasters">
</select>
</div>
,start
,stop
(不完全是切片表示法)允许range
,请执行以下操作:
step
如果没有,请使用条件理解,其条件基于模数:
def every_third(lst):
return [lst[i] for i in range(0, len(lst), 3)]
答案 1 :(得分:0)
使用enumerate
的另一个技巧:
seq = [1,2,3,4,5,6,7,8,9,10]
every_three = [value for idx, value in enumerate(seq) if idx % 3 == 0]
但是我的第一条评论,如果对上述行的代码审查将是:使用切片语法,则无需在此使用枚举。
答案 2 :(得分:0)
如果问题只是切片符号,就像在[:: 3]中我认为应该是这样的想法,我认为你正在做练习吗?
list=[1,2,3,4,5,6,7,8,9,10]
def third(list):
res=[]
count=3
res.append(list[0])
while len(list)>0:
if count>0:
list.pop(0)
else:
res.append(list[0])
list.pop(0)
count=3
count -= 1
return res
print(third(list))