как перебрать список объектов - PullRequest
0 голосов
/ 29 апреля 2019

У меня есть список объектов. Я хотел бы проверить некоторую строку, если эта строка существует в качестве значения поля любого объекта в списке. например,

class Ani:
    name = ''
    def __init__(self, name):
        self.name = name

    def getName(self):
        return self.name


animal1 = Ani('alica')
animal2 = Ani('rex')
animal3 = Ani('bobik')
animal4 = Ani('dobik')
animal5 = Ani('sobik')

a = [animal1, animal2, animal3,animal4,animal5]

Моя проблема написать код, чтобы увидеть, есть ли объект с данным именем. например "чип".

Ответы [ 4 ]

3 голосов
/ 29 апреля 2019

Вы можете использовать any плюс понимание:

any(animal.getName() == "chip" for animal in animals)
3 голосов
/ 29 апреля 2019

Вы можете перебирать массив объектов и проверять с помощью функции getName каждого объекта.

class Ani:
    name = ''
    def __init__(self, name):
        self.name = name

    def getName(self):
        return self.name


animal1 = Ani('alica')
animal2 = Ani('rex')
animal3 = Ani('bobik')
animal4 = Ani('dobik')
animal5 = Ani('sobik')

animals = [animal1, animal2, animal3,animal4,animal5]

searched_animal = 'rex'

for animal in animals:
  if animal.getName() == searched_animal:
    print('Found')
    break
0 голосов
/ 29 апреля 2019

Перебор списка, содержащего что-либо, на самом деле довольно прост Вот так:

animal_to_find = "someAnimal"
for animal in animals:
  if animal.getName() == animal_to_find:
    print("Found a match for: " + animal)  
0 голосов
/ 29 апреля 2019

Вы можете использовать метод getName, представленный в классе Ani для этой программы

class Ani:
    name = ''
    def __init__(self, name):
        self.name = name

    def getName(self):
        return self.name


animal1 = Ani('alica')
animal2 = Ani('rex')
animal3 = Ani('bobik')
animal4 = Ani('dobik')
animal5 = Ani('sobik')

animals = [animal1, animal2, animal3,animal4,animal5]

key = 'chip'

flag=0
for animal in animals:
    if animal.getName() == key:
        print('Found')
        flag=1
        break

if flag==0:
    print("Not Found")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...