【问题标题】:iterate through a list by skipping every 5th element通过跳过每 5 个元素来遍历列表
【发布时间】:2018-10-12 02:10:18
【问题描述】:

我正在做一个魔方作业,我需要帮助来完成其中一个步骤。 我需要通过比较元素并跳过每 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 个元素,这与我想要的相反。 谢谢

【问题讨论】:

    标签: python loops for-loop iteration


    【解决方案1】:
    [newList[each] for each in range(len(newList)) if each % 5 != 4]
    

    我用的是python3,试试看是否也适合你。

    正如其他答案所建议的那样,更好地使用枚举结果:

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

    【讨论】:

    • 第5个元素表示each == 4,其中each % 5 != 0不会被跳过。您将跳过每个第 6 个元素 5。我认为您正在寻找 (each + 1) % 5 != 0。
    【解决方案2】:

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

    for index, elem in enumerate(newList):
        if index % 4 == 0:
            # do something
    

    【讨论】:

    • 它仍然只打印每 5 个元素。但是当我尝试 if index %4 != 0: 它有效,但不是从 '0' 开始
    • @Plagga 这只是为了演示您可以使用enumerate 做什么。由于这是一个家庭作业,我想我会留给你弄清楚如何使用index 来获得你想要的结果。
    【解决方案3】:

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

    for index, elem in enumerate(newList):
        if index != 4:    
            print elem
    

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

    【讨论】:

    • 这不会排除第10、15、20 ...元素
    • 哦!我没有注意到每 5 个元素。感谢您指出。
    【解决方案4】:

    这就是我的做法。

        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
    

    【讨论】:

    • 这也很有帮助,谢谢!
    猜你喜欢
    • 1970-01-01
    • 2019-03-07
    • 2020-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多