Как добавить в список нулевые значения ключей словаря?

У меня есть словарь, который имеет несколько ключей и каждый ключ имеет несколько значений в формате списка, если ключи имеют значение Null, то ключ должен быть appended в списке.

вот мой словарь:

{'XSTY':['21.01', '22.01'], 'STRY': ['31.01', None], 'SYER': ['34.21', None], 'HUHTY': [None, '45.22]}

и я использую этот подход для добавления в список значений ключей, значения которых равны null

final_dict = {'XSTY':['21.01', '22.01'], 'STRY': ['31.01', None], 'SYER': ['34.21', None], 'HUHTY': [None, '45.22]}
data = []
for in in final_dict.keys():
    if i == 'HUHTY':
        if len(final_dict[i]>0:
            data.append(i)
            print("Append Success")
        else:
            print("data did not append")

приведенный выше код добавляет данные только для этого ключа HUHTY', but it should append the data for STRY,SYER,HUHTYall of these keys whose values areNone` внутри списка. Любая помощь будет оценена по достоинству.

Я знаю, что он не добавляет другие ключи из-за этого условия if i == 'HUHTY':. пожалуйста, предложите лучший подход, чтобы сделать то же самое динамически.

Это то, что вы ищете?

final_dict = {'XSTY':['21.01', '22.01'], 'STRY': ['31.01', None], 'SYER': ['34.21', None], 'HUHTY': [None, '45.22']}
data = [k for k,v in final_dict.items() for i in v if not i]    
print(data)

Выход:

['STRY', 'SYER', 'HUHTY']

Надеюсь, это поможет вам

datas ={'XSTY':['21.01', '22.01'], 'STRY': ['31.01', None], 'SYER': ['34.21', None], 'HUHTY': [None, '45.22']}
data = []
for k,v in datas.items():
  for z in v:
    if (z) ==None:
      data.append(k)
print(data)

Поскольку в комментариях к другому ответу вы указали, что хотите получить его в виде строки, которую можно отправить по электронной почте, подойдет следующее:

final_dict = {'XSTY':['21.01', '22.01'], 'STRY': ['31.01', None], 'SYER': ['34.21', None], 'HUHTY': [None, '45.22']}
email_string = ', '.join([k for k,v in final_dict.items() if None in v])   
print(email_string)

STRY, SYER, HUHTY

Вернуться на верх