首页 > 解决方案 > 字典上的 ZIP 功能

问题描述

我正在为我所参加的课程的作业而苦苦挣扎。

创建一个函数,该函数返回一个国家列表,案例数等于一: 提示:您可以使用 Python 中的 zip() 函数同时遍历两个列表。

因此,前面的问题是获得有单一冠状病毒病例的国家数量。有 7 个国家作为输出 - 以下是为此工作的。

# Add your code below
def single_case_country_count(data):
    item = data['Total Cases']
    count = item.count(1)
    if count == 0:
        print('None found')
    return  count
#      pass

然而,我在第二部分返回这 7 个国家的名称时遇到了困难。

类型(最新)显示字典

我编写了这段代码,假设我将有一个字典,其中只有它等于 1 和原始列表的情况;通过压缩功能对它们进行分组,最后只显示国家列表。

def single_case_countries(data):
    cases = data['Total Cases'] == 1
    names = data['Country']
    zipped = zip(names,cases)
    final = list(zipped)
    return final['Country']
#      pass

TypeError:'bool' 对象不可迭代

这里明显的问题是我无法使用“cases = data['Total Cases'] == 1”过滤字典,因为它返回一个布尔值。

想知道是否有一些建议(特别是在字典上过滤特定值

标签: pythonpandas

解决方案


我设法用以下代码解决了这个问题:

def single_case_countries(data):
    countries = []
    
    for country,cases in zip(data["Country"],data["Total Cases"]):
        if cases == 1:
           countries.append(country) 
    
    return  countries

推荐阅读