首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过值从字典中删除键

如何通过值从字典中删除键
EN

Stack Overflow用户
提问于 2022-11-04 19:04:22
回答 2查看 41关注 0票数 1
代码语言:javascript
复制
students = {'palii':('male','170'),
            'Minckach':('male','176'),
            'ddl':('male','180'),
            'Red1ska':('male','188'),
            'Sargeras':('male','185'),
            'Gerus':('female','160'),
            'Liah':('male','183'),
            'Chhekan':('female','182'),
            'Leshega':('male','186'),
            'yurii':('male','187')}

我有这本字典。我如何删除所有的女性,并计算男性的平均身高?也许有什么功能什么的吗?

我试过使用filter()

代码语言:javascript
复制
newDict = dict(filter(lambda elem: elem[1] == 'male',students.items()))

但这不管用。

代码语言:javascript
复制
def halfmale(stats): 
    sum = 0
    for key in stats.values():
        sum += float(key)
    half = sum / len(stats)
    print(half)
    for value, key in stats.items():
        if (key+5>half and key-5<half):
            print(value)

Python说在这个部分,问题是除以零。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-11-04 19:08:08

你想要这个吗?

如果dict.

  • Keep的平均高度是gender =='male'.

  • Compute的话,
  1. 就会迭代。

代码语言:javascript
复制
height_lst = [int(height) for name, (gender, height) in students.items() if gender == 'male']
print(f'Average: {sum(height_lst)/len(height_lst)}') 

输出:Average: 181.875

您可以更正newDict,如下所示:

代码语言:javascript
复制
>>> dict(filter(lambda elem: elem[1][0] == 'male',students.items()))

{'palii': ('male', '170'),
 'Minckach': ('male', '176'),
 'ddl': ('male', '180'),
 'Red1ska': ('male', '188'),
 'Sargeras': ('male', '185'),
 'Liah': ('male', '183'),
 'Leshega': ('male', '186'),
 'yurii': ('male', '187')}
票数 1
EN

Stack Overflow用户

发布于 2022-11-04 19:15:15

用dict理解来做一个只包含男性的新的dict。

代码语言:javascript
复制
newDict = {k:v for k,v in students.items() if v[0] == 'male'}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74321858

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档