中断数组并在python中运行另一个函数

2024-04-20 08:51:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我的代码:

def exit():
   return "Exit" 

arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]

def func():
   for element in arr:
      print element

我想在数组的每3个元素之后运行exit(),然后从最后一个元素开始恢复。你知道吗


Tags: 代码in元素forreturndefexit数组
2条回答
def func():
   for i, element in enumerate(arr, 1):
      print element
      if not i%3:
          print(exit())

但是,我对代码的某些部分提出了疑问。以下是一些注意事项: arr是一个python列表,而不是数组,因此名称不是最好的名称。 您的exit函数只返回字符串“Exit”,您确定它执行了它应该执行的操作吗?我正在打印exit()的返回值,因为简单地调用它没有任何用处。此外,最好是编写func,这样就可以将列表作为参数。最后,exit已经是一个内置的Python函数,重写它是个坏主意。你知道吗

可以使用enumerate和模:

def exit():
    return "Exit"


arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]

def func():
    for ind, element in enumerate(arr, 1):
        print element
        if ind % 3 == 0:
            print(exit())

输出:

1
2
3
Exit
4
5
6
Exit
7
8
9
Exit
0

如果一次确实要使用n元素,可以将它们传递给函数:

from itertools import islice

arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]

def func():
    it = iter(arr)
    for sli in iter(lambda: list(islice(it, 3)),[]):
        print(sli) # pass sli to function
        print(exit())

func()

输出:

[1, 2, 3]
Exit
[4, 5, 6]
Exit
[7, 8, 9]
Exit
[0]
Exit

相关问题 更多 >