Hướng dẫn check value in array object python - kiểm tra giá trị trong đối tượng mảng python

Tôi muốn kiểm tra xem danh sách các đối tượng của tôi có chứa một đối tượng có giá trị thuộc tính nhất định không.

class Test:
    def __init__(self, name):
        self.name = name

# in main()
l = []
l.append(Test("t1"))
l.append(Test("t2"))
l.append(Test("t2"))

Tôi muốn một cách kiểm tra xem danh sách có chứa một đối tượng có tên

[x for x in myList if x.n == 30]               # list of all matches
any(x.n == 30 for x in myList)                 # if there is any matches
[i for i,x in enumerate(myList) if x.n == 30]  # indices of all matches

def first(iterable, default=None):
    for item in iterable:
        return item
    return default

first(x for x in myList if x.n == 30)          # the first match, if any
9 chẳng hạn không. Nó được hoàn thiện bằng cách nào? Tôi đã tìm thấy https://stackoverflow.com/a/598415/292291,

[x for x in myList if x.n == 30]               # list of all matches
any(x.n == 30 for x in myList)                 # if there is any matches
[i for i,x in enumerate(myList) if x.n == 30]  # indices of all matches

def first(iterable, default=None):
    for item in iterable:
        return item
    return default

first(x for x in myList if x.n == 30)          # the first match, if any

Tôi không muốn đi qua toàn bộ danh sách mỗi lần, tôi chỉ cần biết nếu có 1 trường hợp phù hợp.

animals = ['Dog', 'Cat', 'Bird', 'Fish']
0 hoặc
animals = ['Dog', 'Cat', 'Bird', 'Fish']
1 hoặc một cái gì đó khác làm điều đó?

Giới thiệu

Trong hướng dẫn này, chúng ta sẽ xem cách kiểm tra xem danh sách có chứa phần tử hoặc giá trị trong Python không. Chúng tôi sẽ sử dụng một danh sách các chuỗi, chứa một vài động vật:

animals = ['Dog', 'Cat', 'Bird', 'Fish']

Kiểm tra xem danh sách có chứa phần tử với vòng lặp không

Một phương pháp đơn giản và thô sơ để kiểm tra xem danh sách có chứa một phần tử đang lặp qua nó không và kiểm tra xem mục chúng tôi có phù hợp với phần chúng tôi đang tìm kiếm không. Hãy sử dụng vòng lặp

animals = ['Dog', 'Cat', 'Bird', 'Fish']
2 cho việc này:

for animal in animals:
    if animal == 'Bird':
        print('Chirp!')

Mã này sẽ dẫn đến:

Chirp!

Kiểm tra xem danh sách có chứa phần tử với toán tử không

Bây giờ, một cách tiếp cận succint hơn sẽ là sử dụng toán tử

animals = ['Dog', 'Cat', 'Bird', 'Fish']
3 tích hợp, nhưng với câu lệnh
animals = ['Dog', 'Cat', 'Bird', 'Fish']
4 thay vì câu lệnh
animals = ['Dog', 'Cat', 'Bird', 'Fish']
2. Khi được ghép nối với
animals = ['Dog', 'Cat', 'Bird', 'Fish']
4, nó sẽ trả về
animals = ['Dog', 'Cat', 'Bird', 'Fish']
7 nếu một phần tử tồn tại theo một chuỗi hay không. Cú pháp của toán tử
animals = ['Dog', 'Cat', 'Bird', 'Fish']
3 trông như thế này:

element in list

Sử dụng toán tử này, chúng tôi có thể rút ngắn mã trước đó thành một câu lệnh:

if 'Bird' in animals: print('Chirp')

Đoạn mã này sẽ xuất ra như sau:

Chirp

Cách tiếp cận này có hiệu quả tương tự như vòng lặp

animals = ['Dog', 'Cat', 'Bird', 'Fish']
2, vì toán tử
animals = ['Dog', 'Cat', 'Bird', 'Fish']
3, được sử dụng như thế này, gọi hàm
for animal in animals:
    if animal == 'Bird':
        print('Chirp!')
1, vốn đã lặp qua danh sách - mặc dù, nó dễ đọc hơn nhiều.

Kiểm tra xem danh sách có chứa phần tử không có trong toán tử không

Ngược lại, chúng ta có thể sử dụng toán tử

for animal in animals:
    if animal == 'Bird':
        print('Chirp!')
2, là đối diện logic của toán tử ____23. Nó trả về
animals = ['Dog', 'Cat', 'Bird', 'Fish']
7 nếu phần tử không có mặt trong một chuỗi.

Hãy viết lại ví dụ về mã trước đó để sử dụng toán tử

for animal in animals:
    if animal == 'Bird':
        print('Chirp!')
2:

if 'Bird' not in animals: print('Chirp')

Chạy mã này sẽ không tạo ra bất cứ điều gì, vì

for animal in animals:
    if animal == 'Bird':
        print('Chirp!')
6 có trong danh sách của chúng tôi.

Nhưng nếu chúng ta dùng thử với

for animal in animals:
    if animal == 'Bird':
        print('Chirp!')
7:

if 'Wolf' not in animals: print('Howl')

Mã này dẫn đến:

[x for x in myList if x.n == 30]               # list of all matches
any(x.n == 30 for x in myList)                 # if there is any matches
[i for i,x in enumerate(myList) if x.n == 30]  # indices of all matches

def first(iterable, default=None):
    for item in iterable:
        return item
    return default

first(x for x in myList if x.n == 30)          # the first match, if any
0

Kiểm tra xem danh sách có chứa phần tử với Lambda không

Một cách khác, bạn có thể kiểm tra xem một phần tử có mặt không phải là lọc mọi thứ khác ngoài phần tử đó, giống như sàng lọc qua cát và kiểm tra xem cuối cùng có bất kỳ vỏ nào không. Phương pháp

for animal in animals:
    if animal == 'Bird':
        print('Chirp!')
8 tích hợp chấp nhận hàm Lambda và danh sách là đối số của nó. Chúng tôi có thể sử dụng chức năng Lambda ở đây để kiểm tra chuỗi
for animal in animals:
    if animal == 'Bird':
        print('Chirp!')
9 của chúng tôi trong danh sách
Chirp!
0.

Sau đó, chúng tôi kết thúc kết quả trong một

Chirp!
1 vì phương thức
for animal in animals:
    if animal == 'Bird':
        print('Chirp!')
8 trả về một đối tượng
Chirp!
3 chứ không phải kết quả. Nếu chúng ta đóng gói đối tượng
Chirp!
3 trong danh sách, nó sẽ chứa các phần tử còn lại sau khi lọc:

[x for x in myList if x.n == 30]               # list of all matches
any(x.n == 30 for x in myList)                 # if there is any matches
[i for i,x in enumerate(myList) if x.n == 30]  # indices of all matches

def first(iterable, default=None):
    for item in iterable:
        return item
    return default

first(x for x in myList if x.n == 30)          # the first match, if any
1

Mã này dẫn đến:

Kiểm tra hướng dẫn thực hành của chúng tôi, thực tế để học Git, với các thực hành tốt nhất, các tiêu chuẩn được công nghiệp chấp nhận và bao gồm bảng gian lận. Ngừng các lệnh git googling và thực sự tìm hiểu nó!

[x for x in myList if x.n == 30]               # list of all matches
any(x.n == 30 for x in myList)                 # if there is any matches
[i for i,x in enumerate(myList) if x.n == 30]  # indices of all matches

def first(iterable, default=None):
    for item in iterable:
        return item
    return default

first(x for x in myList if x.n == 30)          # the first match, if any
2

Bây giờ, cách tiếp cận này không phải là hiệu quả nhất. Nó khá chậm hơn ba cách tiếp cận trước đó chúng tôi đã sử dụng. Phương thức

for animal in animals:
    if animal == 'Bird':
        print('Chirp!')
8 tự nó tương đương với hàm máy phát:

[x for x in myList if x.n == 30]               # list of all matches
any(x.n == 30 for x in myList)                 # if there is any matches
[i for i,x in enumerate(myList) if x.n == 30]  # indices of all matches

def first(iterable, default=None):
    for item in iterable:
        return item
    return default

first(x for x in myList if x.n == 30)          # the first match, if any
3

Hiệu suất bị chậm lại của mã này, trong số những thứ khác, xuất phát từ thực tế là chúng ta đang chuyển đổi kết quả thành một danh sách cuối cùng, cũng như thực hiện một hàm trên mục trên mỗi lần lặp.

Kiểm tra xem danh sách có chứa phần tử bằng bất kỳ ()

Một cách tiếp cận tích hợp tuyệt vời khác là sử dụng hàm

Chirp!
6, đây chỉ là hàm trợ giúp kiểm tra xem có (ít nhất 1) trường hợp của một phần tử trong danh sách không. Nó trả về
animals = ['Dog', 'Cat', 'Bird', 'Fish']
7 hoặc
Chirp!
8 dựa trên sự hiện diện hoặc thiếu của một yếu tố:

[x for x in myList if x.n == 30]               # list of all matches
any(x.n == 30 for x in myList)                 # if there is any matches
[i for i,x in enumerate(myList) if x.n == 30]  # indices of all matches

def first(iterable, default=None):
    for item in iterable:
        return item
    return default

first(x for x in myList if x.n == 30)          # the first match, if any
4

Vì điều này dẫn đến

animals = ['Dog', 'Cat', 'Bird', 'Fish']
7, tuyên bố
element in list
0 của chúng tôi được gọi là:

Chirp

Cách tiếp cận này cũng là một cách hiệu quả để kiểm tra sự hiện diện của một yếu tố. Nó hiệu quả như ba đầu tiên.

Kiểm tra xem danh sách có chứa phần tử bằng cách sử dụng Count ()

Cuối cùng, chúng ta có thể sử dụng chức năng

element in list
1 để kiểm tra xem phần tử có mặt hay không:

[x for x in myList if x.n == 30]               # list of all matches
any(x.n == 30 for x in myList)                 # if there is any matches
[i for i,x in enumerate(myList) if x.n == 30]  # indices of all matches

def first(iterable, default=None):
    for item in iterable:
        return item
    return default

first(x for x in myList if x.n == 30)          # the first match, if any
6

Hàm này trả về sự xuất hiện của phần tử đã cho trong một chuỗi. Nếu nó lớn hơn 0, chúng ta có thể đảm bảo một mục đã cho nằm trong danh sách.

Hãy kiểm tra kết quả của hàm

element in list
1:

[x for x in myList if x.n == 30]               # list of all matches
any(x.n == 30 for x in myList)                 # if there is any matches
[i for i,x in enumerate(myList) if x.n == 30]  # indices of all matches

def first(iterable, default=None):
    for item in iterable:
        return item
    return default

first(x for x in myList if x.n == 30)          # the first match, if any
7

Hàm

element in list
1 vốn đã lặp lại danh sách để kiểm tra số lượng xảy ra và mã này dẫn đến:

Chirp

Sự kết luận

Trong hướng dẫn này, chúng tôi đã đi qua một số cách để kiểm tra xem một yếu tố có mặt trong danh sách hay không. Chúng tôi đã sử dụng các toán tử

animals = ['Dog', 'Cat', 'Bird', 'Fish']
2,
animals = ['Dog', 'Cat', 'Bird', 'Fish']
3 và
for animal in animals:
    if animal == 'Bird':
        print('Chirp!')
2, cũng như các phương thức
for animal in animals:
    if animal == 'Bird':
        print('Chirp!')
8,
Chirp!
6 và
element in list
1.

Làm thế nào để bạn kiểm tra xem một giá trị có ở trong một mảng trong Python không?

Sử dụng từ khóa để kiểm tra xem một phần tử có tồn tại trong một mảng không..
Mảng = [1, 2, 3].
tồn tại = 2 trong mảng ..
print(exists).
tồn tại = 5 trong mảng ..
print(exists).

Làm thế nào để bạn kiểm tra xem một giá trị có ở trong một python đối tượng không?

Cách sử dụng hàm isInstance () trong Python..
Truyền đối tượng đến isInstance () Truyền biến bạn muốn kiểm tra dưới dạng đối số đối tượng cho isInstance ().....
Chỉ định tên loại hoặc loại là đối số classinfo.....
Thực hiện thao tác của bạn, nếu kết quả là đúng ..

Làm cách nào để tìm một phần tử trong một mảng python?

Python có một phương thức để tìm kiếm một phần tử trong một mảng, được gọi là index ().Nếu bạn sẽ chạy x.chỉ mục ('p') bạn sẽ nhận được bằng không làm đầu ra (chỉ mục đầu tiên).index(). If you would run x. index('p') you would get zero as output (first index).

Làm thế nào để bạn kiểm tra xem một danh sách có chứa giá trị trong Python không?

Kiểm tra xem danh sách Python có chứa một phần tử sử dụng trong toán tử không.Cách thuận tiện nhất để kiểm tra xem danh sách có chứa phần tử đang sử dụng toán tử trong hay không.Không sắp xếp danh sách theo bất kỳ thứ tự cụ thể nào, nó sẽ trả về đúng nếu phần tử ở đó, nếu không thì sai.using in operator. The most convenient way to check whether the list contains the element is using the in operator. Without sorting the list in any particular order, it returns TRUE if the element is there, otherwise FALSE.