簡體   English   中英

當在 Python 中給出類屬性之一的值時,如何訪問列表中的類對象?

[英]How to access a class object inside a list when a value for one of the class attributes is given in Python?

我有一個類對象列表,我想知道如何在列表中打印一個特定的類對象,給它一個屬性的值。

這是我的代碼:

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

lst = [Person("A",1), Person("B",2), Person("C", 3)]

inputAge = int(input("Age: "))

if inputAge == 2:
  print() #this should print the class object with age 2 from the list 

我不知道我應該在print()代碼中放什么。

這是您可以找到具有特定屬性的列表的第一個元素的方法(前提條件:列表的所有對象都具有該屬性):

obj = next((x for x in lst if x.age == inputAge), None)

如果在列表中找不到這樣的對象,則objNone

找到對象后,您可以對它做任何您想做的事情,包括打印( print(obj) )。

如果您希望對象的打印有意義,則必須執行以下操作:

class Person:
  def __init__(self, name, age):
    self.name = name
    self.age = age
  def __str__(self):
    return 'name: ' + self.name + ' age: ' + self.age

這是完整的例子:

class Person:
  def __init__(self, name, age):
    self.name = name
    self.age = age
  def __str__(self):
    return 'name: ' + self.name + ' age: ' + self.age

lst = [Person("A",1), Person("B",2), Person("C", 3)]

inputAge = int(input("Age: "))
obj = next((x for x in lst if x.age == inputAge), None)
print(obj) # prints the object with age = inputAge

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM