打印属性列表

时间:2018-12-09 06:20:20

标签: python python-3.x list object printing

这里是全新的编码器。这是我的测试代码:

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 :(得分:1)

您可以尝试以下方法:

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']

答案 1 :(得分:1)

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

<span id="lastModified"></span>

然后使用:

def __repr__(self):
    return self.name

上面的陈述与:

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

答案 2 :(得分:0)

对于您的示例,您可以这样做:

PS D:\0_program_dev>'C:\Python\Python37\python.exe' 'd:\0_program_dev\hands_of_ada_book_generator\logging_tools.py'
    application obj_name - INFO - declare name
PS D:\0_program_dev>

玩得开心:)

答案 3 :(得分:0)

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

'd'是15岁的狗的名字列表。

答案 4 :(得分:0)

我建议这种方法:

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