每个Python但在n个元素之后停止

Mat*_*ttF 4 python

我有一个dicts列表,可以是0到100个元素长.我想只查看前三个元素,如果列表中的元素少于三个,我不想抛出错误.我如何在python中干净利落地做到这一点?

伪代码:

for element in my_list (max of 3):
    do_stuff(element)
Run Code Online (Sandbox Code Playgroud)

编辑:此代码有效但感觉非常不洁净.我觉得python有更好的方法来做到这一点:

counter = 0
while counter < 3:
    if counter >= len(my_list):
        break

    do_stuff(my_list[counter])
    counter += 1
Run Code Online (Sandbox Code Playgroud)

mgi*_*son 5

你可以使用itertools.islice:

for element in itertools.islice(my_list, 0, 3):
    do_stuff(element)
Run Code Online (Sandbox Code Playgroud)

当然,如果它实际上一个列表,那么你可以使用常规切片:

for element in my_list[:3]:
    do_stuff(element)
Run Code Online (Sandbox Code Playgroud)

正常序列上的常规切片是"宽容的",因为如果你要求的元素多于那里,则不会引发任何异常.