通过跳过第5个元素来遍历列表

时间:2018-10-12 02:10:18

标签: python loops for-loop iteration

我正在处理Rubik的多维数据集分配,并且需要帮助来完成以下步骤之一。 我需要通过比较元素并跳过第5个元素来遍历列表。 到目前为止,我能够找到这个:

newList =['0','1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26']
for elem in newList[ : : 5]:
    print elem

使用此方法,我只能打印每第5个元素,这与我想要的相反。 谢谢

4 个答案:

答案 0 :(得分:4)

[newList[each] for each in range(len(newList)) if each % 5 != 4]

虽然我正在使用python3,请尝试使用它是否也适用。

如其他答案所建议,使用枚举结果更好:

[each for index, each in enumerate(newList) if index % 5 != 4]

答案 1 :(得分:1)

您可以在迭代时使用enumerate函数,以便知道该元素在列表中具有哪个索引。然后,您可以轻松地执行检查:

my_dates = ['05 Nov 2018', '25 Mar 2017', '01 Nov 2018', '07 Mar 2017']
my_dates = [ dt.strptime(date, '%d %b %Y') for date in my_dates ]
print(my_dates)
# [datetime.datetime(2018, 11, 5, 0, 0), datetime.datetime(2017, 3, 25, 0, 0), datetime.datetime(2018, 11, 1, 0, 0), datetime.datetime(2017, 3, 7, 0, 0)]

my_dates.sort()
print(my_dates)
# [datetime.datetime(2017, 3, 7, 0, 0), datetime.datetime(2017, 3, 25, 0, 0), datetime.datetime(2018, 11, 1, 0, 0), datetime.datetime(2018, 11, 5, 0, 0)]

my_dates = [ date.strftime('%d %b %Y') for date in my_dates ]
print(my_dates)
# ['07 Mar 2017', '25 Mar 2017', '01 Nov 2018', '05 Nov 2018']

答案 2 :(得分:1)

您可以使用元素的索引来跳过。

setArrayObjectPrototype()

希望这会有所帮助!干杯!

答案 3 :(得分:0)

这是我的方法。

    array1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]

    count = 1

    for i in array1:
        if count % 5 != 0:
           count += 1
           print(i)
        else:
           count += 1