这里是全新的编码器。这是我的测试代码:
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岁的狗的清单,什么是正确的方法?
答案 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