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

标签 python python-3.x

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

相关文章:

python - geopy 未显示正确的输出

python - 为什么pip3安装在python2 sitepackages

python - Django 多个外键,相同的相关名称

python - 用 Graphviz 显示这个决策树

python - Windows 上带有套接字包装器的 `OSError: [Errno 9] Bad file descriptor`

python - 如何使用 tkinter 创建下一个按钮以在多个框架之间切换

python - PyInstaller 什么是隐藏导入和 Hook ?

python - 属性错误 : 'NoneType' object has no attribute 'lower' python

python - 碎片 : storing the data

python - Raspberry Pi 中的硬币计数器 (RPi-GPIO)