gpt4 book ai didi

python - 管理 'for' 循环中特定类的列表 - Python

转载 作者:太空宇宙 更新时间:2023-11-03 15:12:35 24 4
gpt4 key购买 nike

假设我有这个类(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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com