如何迭代对象列表

时间:2019-04-29 07:02:18

标签: python loops object

我有一个对象列表。我想检查一些字符串,如果该字符串作为字段值存在于列表中的任何对象中。例如,

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 个答案:

答案 0 :(得分:3)

您可以遍历对象数组,并检查每个对象的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

答案 1 :(得分:3)

您可以使用any加上理解:

any(animal.getName() == "chip" for animal in animals)

答案 2 :(得分:0)

您可以为此程序使用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")

答案 3 :(得分:0)

迭代包含任何内容的列表确实非常简单。像这样:

animal_to_find = "someAnimal"
for animal in animals:
  if animal.getName() == animal_to_find:
    print("Found a match for: " + animal)