2010-02-02 40 views
24

Làm cách nào để rời khỏi vòng lặp sớm trong python?Python Rời khỏi Vòng Lặp sớm

for a in b: 
    if criteria in list1: 
     print "oh no" 
     #Force loop i.e. force next iteration without going on 
    someList.append(a) 

Ngoài ra, trong java bạn có thể break ngoài vòng lặp, có tương đương bằng Python không?

+5

Không sử dụng 'danh sách' làm tên biến. Nó ẩn nội trang. –

Trả lời

42

continuebreak là những gì bạn muốn. Python hoạt động giống với Java/C++ trong lĩnh vực này.

+2

Sự tò mò ngẫu nhiên; bạn là "Max_aka_NOBODY" từ Diễn đàn Bethesda? Bạn chia sẻ cùng một avatar đó là lý do tại sao tôi đã tự hỏi. – Yacoby

+2

Thật vậy tôi. : D –

15

Trước tiên, hãy nhớ rằng bạn có thể thực hiện những gì bạn muốn bằng cách hiểu danh sách. Vì vậy, bạn có thể sử dụng một cái gì đó như:

somelist = [a for a in b if not a.criteria in otherlist] 

Nếu bạn muốn để lại một vòng đầu trong Python, bạn có thể sử dụng break, giống như trong Java.

>>> for x in xrange(1,6): 
...  print x 
...  if x == 2: 
...   break 
... 
1 
2 

Nếu bạn muốn bắt đầu lặp lại vòng lặp tiếp theo sớm bạn sử dụng continue, cũng giống như bạn làm trong Java.

>>> for x in xrange(1,6): 
...  if x == 2: 
...   continue 
...  print x 
... 
1 
3 
4 
5 

Here's the documentation for break and continue. cũng này bao gồm else khoản cho các vòng, không được chạy khi bạn break.

4

continuebreak hoạt động chính xác như trong các ngôn ngữ lập trình khác, ngoại trừ việc bạn không thể break vào nhãn (ví dụ như bạn có thể làm trong Java). Điều đó có nghĩa là bạn chỉ có thể ngắt một vòng lặp cùng một lúc.

Các vấn đề liên quan