我希望遍历列表并在达到某个值时终止。 类似的东西:
ls = ['yes','yes','stop','yes']
while a in ls <> 'stop':
print a
会打印:
yes
yes
我知道我能做到:
for a in ls:
if a == 'stop':
break
print a
但似乎很乱。
答案 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'
>>>