假设我有这个类(class)。
class Country:
def __init__(self, population, DHI, capital, name):
self.population= population
self.DHI= DHI
self.capital = capital
self.name= name
我创建了一个此类的对象列表,如下所示。
american_countries = [
Country(120000000, 0.762, "Mexico City", "Mexico"),
Country(320000000, 0.919, "Washington DC", "United States"),
Country(36000000, 0.920, "Ottawa", "Canada"),
Country(40000000, 0.827, "Buenos Aires", "Argentina"),
Country(18000000, 0.847, "Santiago", "Chile"),
Country(10000000, 0.776, "La Habana", "Cuba"),
Country(207000000,0.744, "Brasilia", "Brasil"),
Country(16000000, 0.640, "Guatemala", "Guatemala"),
Country(6900000, 0.693, "Asuncion", "Paraguay"),
Country(8700000, 0.625, "Distrito Central", "Honduras"),
]
然后,我调用一个方法来询问这些国家的人口,如果不满足问题的要求,则必须将其从列表中删除。
american_countries = ask_population(american_countries)
例如,假设我们询问用户选择的国家/地区是否拥有超过 1 亿的居民,如果答案是肯定的,我们必须从列表中删除除美国、墨西哥和巴西之外的所有国家/地区。
我认为我们必须检查列表中的所有对象并询问人口,但我不知道如何在Python中执行此操作,因为该函数不知道对象国家/地区,因此不可能执行类似的操作这个伪代码...
def ask_population(list):
answer= input("Does your country has over 100 million habitants?")
if answer== 'Yes' or answer== 'yes' or answer== "YES":
for x in list():
if(list[x].population < 100000000):
print(Pais.nombre)
lista.pop(x)
最佳答案
您可以使用列表理解来获取新的过滤列表:
def ask_population(list):
answer = input("Does your country has over 100 million habitants?")
if answer.lower() == "yes":
new_list = [x for x in list if x.population >= 100000000]
这个新列表将为您提供旧列表的过滤版本,仅包含满足您条件的元素。
关于python - 管理 'for' 循环中特定类的列表 - Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44104178/