2011-02-02 40 views

Trả lời

33

Sử dụng từ khóa in mà không cần is.

if "x" in dog: 
    print "Yes!" 

Nếu bạn muốn kiểm tra sự không tồn tại của một nhân vật, sử dụng not in:

if "x" not in dog: 
    print "No!" 
6

in từ khóa cho phép bạn để lặp qua một bộ sưu tập và kiểm tra nếu có một thành viên trong bộ sưu tập bằng phần tử.

Trong trường hợp chuỗi này là gì, nhưng một danh sách các nhân vật:

dog = "xdasds" 
if "x" in dog: 
    print "Yes!" 

Bạn có thể kiểm tra một chuỗi quá: bộ sưu tập

>>> 'x' in "xdasds" 
True 
>>> 'xd' in "xdasds" 
True 
>>> 
>>> 
>>> 'xa' in "xdasds" 
False 

nghĩ:

>>> 'x' in ['x', 'd', 'a', 's', 'd', 's'] 
True 
>>> 

Bạn cũng có thể kiểm tra thành viên đã đặt trên các lớp do người dùng xác định.

For user-defined classes which define the __contains__ method, x in y is true if and only if y.__contains__(x) is true.

1

Nếu bạn muốn có một phiên bản đó đặt ra một lỗi:

"string to search".index("needle") 

Nếu bạn muốn có một phiên bản trả về -1:

"string to search".find("needle") 

Đây là hiệu quả hơn so với 'trong' cú pháp

+0

Cái gì? làm thế nào bạn phát hiện ra rằng nó hiệu quả hơn? Bạn có thời gian không? hay là một loại trí huệ nào đó? Về thiết lập của tôi, mã của bạn chậm hơn nhiều, chưa kể đến không phải là pythonic – SilentGhost

+0

được hẹn giờ trong 2,5 bằng cách sử dụng timeit –

+3

, sau đó đăng thời gian của bạn – SilentGhost

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