使用while语句循环遍历列表

时间:2014-12-18 02:45:34

标签: python

我希望遍历列表并在达到某个值时终止。 类似的东西:

ls = ['yes','yes','stop','yes']

while a in ls <> 'stop':
    print a

会打印:

yes
yes

我知道我能做到:

for a in ls:
    if a == 'stop':
        break
    print a

但似乎很乱。

2 个答案:

答案 0 :(得分:4)

您可以使用列表索引和切片:

print ls[:ls.index('stop')]
# => ['yes', 'yes']

循环:

for a in ls[:ls.index('stop')]:
    print a

答案 1 :(得分:4)

您可以使用itertools.takewhile

>>> from itertools import takewhile
>>> ls = ['yes','yes','stop','yes']
>>> for i in takewhile(lambda x: x != 'stop', ls):
...     i
...
'yes'
'yes'
>>>