鱼C论坛

 找回密码
 立即注册
查看: 1851|回复: 3

[已解决]python如何根据值删除键

[复制链接]
发表于 2023-4-25 09:41:03 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
z = {76: 1, 57: 2, 96: 2, 50: 2, 85: 1, 25: 1, 95: 1, 29: 1, 38: 1, 7: 1, 36: 1, 22: 1, 45: 1, 48: 1, 56: 2, 73: 1, 83: 1, 97: 1, 81: 2, 71: 1, 90: 2, 84: 2, 32: 1, 78: 2, 34: 1, 52: 1, 41: 1, 23: 1, 61: 2, 30: 1, 100: 2, 31: 1, 8: 1, 26: 1, 49: 1, 98: 1, 15: 1, 16: 1, 21: 1, 20: 1, 28: 1, 59: 2, 35: 1, 86: 2, 53: 2, 64: 1, 46: 1, 65: 1, 92: 1, 62: 1, 44: 1, 72: 2, 43: 1, 18: 1, 13: 1, 47: 1, 51: 2, 39: 1, 68: 1, 63: 1, 3: 1}

例如上图的字典,我要删除所有值为1的键,保留值为2的键,应如何操作
最佳答案
2023-4-25 09:53:28
你可以使用字典推导式来创建一个新的字典,只包含值为2的键值对。以下是示例代码:
z = {76: 1, 57: 2, 96: 2, 50: 2, 85: 1, 25: 1, 95: 1, 29: 1, 38: 1, 7: 1, 36: 1, 22: 1, 45: 1, 48: 1, 56: 2, 73: 1, 83: 1, 97: 1, 81: 2, 71: 1, 90: 2, 84: 2, 32: 1, 78: 2, 34: 1, 52: 1, 41: 1, 23: 1, 61: 2, 30: 1, 100: 2, 31: 1, 8: 1, 26: 1, 49: 1, 98: 1, 15: 1, 16: 1, 21: 1, 20: 1, 28: 1, 59: 2, 35: 1, 86: 2, 53: 2, 64: 1, 46: 1, 65: 1, 92: 1, 62: 1, 44: 1, 72: 2, 43: 1, 18: 1, 13: 1, 47: 1, 51: 2, 39: 1, 68: 1, 63: 1, 3: 1}

# 使用字典推导式保留值为2的键值对
new_z = {k: v for k, v in z.items() if v == 2}

print(new_z)

输出:
{57: 2, 96: 2, 50: 2, 56: 2, 81: 2, 90: 2, 84: 2, 78: 2, 61: 2, 100: 2, 59: 2, 86: 2, 53: 2, 72: 2, 51: 2}

这样,新的字典`new_z`只包含值为2的键值对。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-4-25 09:53:28 | 显示全部楼层    本楼为最佳答案   
你可以使用字典推导式来创建一个新的字典,只包含值为2的键值对。以下是示例代码:
z = {76: 1, 57: 2, 96: 2, 50: 2, 85: 1, 25: 1, 95: 1, 29: 1, 38: 1, 7: 1, 36: 1, 22: 1, 45: 1, 48: 1, 56: 2, 73: 1, 83: 1, 97: 1, 81: 2, 71: 1, 90: 2, 84: 2, 32: 1, 78: 2, 34: 1, 52: 1, 41: 1, 23: 1, 61: 2, 30: 1, 100: 2, 31: 1, 8: 1, 26: 1, 49: 1, 98: 1, 15: 1, 16: 1, 21: 1, 20: 1, 28: 1, 59: 2, 35: 1, 86: 2, 53: 2, 64: 1, 46: 1, 65: 1, 92: 1, 62: 1, 44: 1, 72: 2, 43: 1, 18: 1, 13: 1, 47: 1, 51: 2, 39: 1, 68: 1, 63: 1, 3: 1}

# 使用字典推导式保留值为2的键值对
new_z = {k: v for k, v in z.items() if v == 2}

print(new_z)

输出:
{57: 2, 96: 2, 50: 2, 56: 2, 81: 2, 90: 2, 84: 2, 78: 2, 61: 2, 100: 2, 59: 2, 86: 2, 53: 2, 72: 2, 51: 2}

这样,新的字典`new_z`只包含值为2的键值对。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-4-25 11:47:01 | 显示全部楼层
牛,一句代码就完成了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-4-25 13:52:21 | 显示全部楼层
同舟 发表于 2023-4-25 11:47
牛,一句代码就完成了。

字典推导式不就只有一行嘛
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-23 13:18

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表