从非零字典打印值(Python)

2024-10-03 15:25:34 发布

您现在位置:Python中文网/ 问答频道 /正文

在一系列代码中,我有一个包含多个字典的类

class MemoryClass:
    def __init__(self):

        self.inven_data = {"odcn": 0 ,"odcnamo": 0 ,"charg": 0,"rfl": 0,"rflamo": 0 ,"p_pstl": 1,"p_pstlamo": 5,"ration": 0,"keycard": 1,"room17": 0}
        self.attack_dmg = {"odcn": 15, "p_pstl":2,"rfl":5,"kick":1}
        self.nme_dta = {"nme_hlth": 0,"nme_dmg": 0,"nme_defet":0}
        self.items_left = {"room3": 1,"room4": 1,"room5": 1,"room6": 1,"room7": 1,"room9": 1,"room13": 1,"room14": 1,"room15": 1,"room16": 1,"room17": 1,"room20": 1} 
        self.room_state = {"all_room": 0, "gameflag": 0}

我希望打印inven_数据,但仅打印其中除零以外的值


Tags: 代码self字典initdefclassroomdmg
1条回答
网友
1楼 · 发布于 2024-10-03 15:25:34

试试这个:

import numpy as np

keys = np.array(list(self.inven_data.keys()))
values = np.array(list(self.inven_data.values()))

print(list(keys[values!=0]))

如果不想使用numpy,可以使用for循环对键和值进行迭代

for k,v in self.inven_data.items():
    if v != 0:
        print(k)

相关问题 更多 >