python如何根据值删除键
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的键,应如何操作
你可以使用字典推导式来创建一个新的字典,只包含值为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的键值对。 牛,一句代码就完成了。 同舟 发表于 2023-4-25 11:47
牛,一句代码就完成了。
字典推导式不就只有一行嘛{:10_277:}
页:
[1]