从数组和 运行 中的另一个函数中断 python
Break from array and run another function in python
我的代码:
def exit():
return "Exit"
arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
def func():
for element in arr:
print element
我想 运行 exit()
在数组的每 3 个元素之后,然后从最后一个元素恢复。
您可以使用 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
def func():
for i, element in enumerate(arr, 1):
print element
if not i%3:
print(exit())
但是,我对您代码的某些部分提出了质疑。以下是一些注意事项:
arr
是一个python列表,不是数组,所以名字不是最好的。
你的 exit
函数只是 return 字符串 "Exit",你确定它做了它应该做的事情吗?我正在打印 exit()
的 return 值,因为简单地调用它不会有任何用处。此外,最好编写 func
以将列表作为参数。最后,exit
已经是内置的 Python 函数,覆盖它是个坏主意。
我的代码:
def exit():
return "Exit"
arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
def func():
for element in arr:
print element
我想 运行 exit()
在数组的每 3 个元素之后,然后从最后一个元素恢复。
您可以使用 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
def func():
for i, element in enumerate(arr, 1):
print element
if not i%3:
print(exit())
但是,我对您代码的某些部分提出了质疑。以下是一些注意事项:
arr
是一个python列表,不是数组,所以名字不是最好的。
你的 exit
函数只是 return 字符串 "Exit",你确定它做了它应该做的事情吗?我正在打印 exit()
的 return 值,因为简单地调用它不会有任何用处。此外,最好编写 func
以将列表作为参数。最后,exit
已经是内置的 Python 函数,覆盖它是个坏主意。