【问题标题】:how to iterate list of objects如何迭代对象列表
【发布时间】:2019-09-17 18:53:21
【问题描述】:

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

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]

我的问题是编写代码以查看是否存在具有给定名称的对象。例如“芯片”。

【问题讨论】:

标签: python loops object


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    您可以使用any 加上理解:

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

    【讨论】:

      【解决方案3】:

      迭代一个包含任何内容的列表真的很简单。像这样:

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

      【讨论】:

        【解决方案4】:

        您可以为此程序使用Ani 类中的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]
        
        key = 'chip'
        
        flag=0
        for animal in animals:
            if animal.getName() == key:
                print('Found')
                flag=1
                break
        
        if flag==0:
            print("Not Found")
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-09-02
          • 2015-12-12
          • 2015-08-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多