@AlexMine
Учусь

Какими способами можно удалить значения из словаря до определенного?

Добрый вечер, как можно обрезать словарь до определенного значения? Например у нас есть следующие данные
key = '5'
state = {'1': 'a', '2':'b', '3':'c', '4':'v', '5':'b', '6':'n', '7':'m'}
# Нужно получить следующий словарь
new_state = {'5':'b', '6':'n', '7':'m'}

Я могу его обработать так:
new_state = {}
flag = False
for k, v in state.items():
    if key == k:
        flag = True
    if flag:
        new_state[k] = v

Но может есть какой-нибудь более элегантный способ?
  • Вопрос задан
  • 104 просмотра
Решения вопроса 1
adugin
@adugin Куратор тега Python
Универсальный подход, который годится для любых типов ключей:
from itertools import dropwhile

key = '5'
state = {1: 'a', 'abc': 'b', 3.14:'c', None: 'v', '5': 'b', '6': 'n', '7': 'm'}

new_state = dict(dropwhile(lambda item: item[0] != key, state.items()))

Или так:
for k in state.copy():
    if k != key:
        del state[k]
    else:
        break
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы