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)
5 回答
'd'是15岁的狗名单 .
我建议这种方法:
你可以试试这个:
这将在不同的行上打印15岁的狗的名字:
要将其保留为列表:
首先,如果要在打印dog变量(d)时打印名称,则需要将其放在Dog类中:
然后使用:
以上陈述与以下内容相同:
对于你的例子,你可以这样做:
玩得开心 :)