如何检查列表中每n个连续元素的格式

时间:2018-10-31 21:08:07

标签: python

例如说我有一个20个元素的列表,我想检查每4个连续的元素是否遵循一个模式。请考虑以下内容:

list = ["start1", "1/2". "3/4", "end1"]

我想确保从list[0]开始的每个第4个元素都包含“开始”,并且从list[1]list[2]开始的每个第4个元素都包含一个“ /”。如果不是,我想输入一个占位符" ",例如:

我想要list2:

list2 = ["start1", "1/2", "end1"]

成为:

list3 = ["start1", "1/2", " ", "end1"]

2 个答案:

答案 0 :(得分:2)

由于您没有发布任何尝试,因此我不会为您提供完整的解决方案,但有一条提示可能对您有用:

for i in range(0,len(list),3):
    print(list[i])

此代码将遍历列表中的每个第四个元素。也许从这里您可以考虑如何进行所需的检查以及如何执行所需的输入。 (请注意,如果在迭代列表时增加列表的长度,则可能还需要操纵迭代变量。)

当然,还有许多其他方式可以完成此任务。

答案 1 :(得分:2)

您似乎正在尝试在列表中移动项目。

此答案应为您提供帮助

Move an item inside a list?

所以看来您必须使用

insert() and pop()

提供您所需要的。

对于算法本身,取模将很有用,因为我们知道:

if index % 4 == 0 AND contains "start"
  if i + 1 AND i + 2 contains "/"

干杯!