Tôi muốn kiểm tra xem danh sách các đối tượng của mình có chứa một đối tượng có giá trị thuộc tính nhất định hay 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 hay không "t1". 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 xem 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. Liệu first(...)hoặc any(...)điều gì khác sẽ làm điều đó?
first()chức năng có sẵn như là một built-in gọinext().