首页 文章

打印属性列表

提问于
浏览
0

这里有全新的编码器 . 所以这是我的测试代码:

class Dog:
   def __init__ (self, name, age):
    self.name = name
    self.age = age

dog1 = Dog('Peter', 15)
dog2 = Dog('Grayson', 15)

dogs = [dog1, dog2]

我想打印一份15岁的所有狗的清单 . 这样做的正确方法是什么?

5 回答

  • 0
    d = [i.name if i.age == 15 else -1 for i in dogs]
    

    'd'是15岁的狗名单 .

  • 1

    我建议这种方法:

    dogs=[]
    dogs.append( Dog('Peter', 15) )
    dogs.append( Dog('Grayson', 15) )
    dogs.append( Dog('Boston', 1) )
    
    dogs_aged_15 = [dog for dog in dogs if dog.age == 15]
    
    for dog in dogs_aged_15:
      print(dog.name)
    
    # Peter
    # Grayson
    
  • 0

    你可以试试这个:

    print(*(dog.name for dog in dogs if dog.age == 15), sep='\n')
    

    这将在不同的行上打印15岁的狗的名字:

    Peter
    Grayson
    

    要将其保留为列表:

    print([dog.name for dog in dogs if dog.age == 15])
    # ['Peter', 'Grayson']
    
  • 0

    首先,如果要在打印dog变量(d)时打印名称,则需要将其放在Dog类中:

    def __repr__(self):
        return self.name
    

    然后使用:

    print ([d for d in dogs if d.age == 15])
    

    以上陈述与以下内容相同:

    for d in dogs:  # iterates through the dogs list
        if d.age == 15:
            print(d)
    
  • 1

    对于你的例子,你可以这样做:

    for dog in dogs:  
        if dog.age == 15:
            #just print name of dog
            print(dog.name)
            #print the dog object
            print(dog)
    

    玩得开心 :)

相关问题