Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 12

Тема: Как в Python dict get keys by value?

  1. Как в Python dict get keys by value?

    Ребята, привет! Столкнулся с такой задачей: нужно из словаря в Python выбрать ключи по значению. Поискал инфу, но как-то не очень понятно. Можно ли как-то быстро это сделать, не перебирая весь словарь вручную? Буду рад любым примерам и советам! Спасибо!



  2. Ждём вас в нашем чате в Телеграмм ==>> @pythoneer_chat

    А ТАКЖЕ: Канал о Python, статьи и книги ==>>
    @pythoneer_ru

  3. Привет! Да, можно это сделать легко с помощью list comprehension. Вот пример, как можно получить все ключи, у которых значение равно заданному:
    Программный код:
    my_dict = {'a'1'b'2'c'1}
    value_to_find 1
    keys 
    = [for kv in my_dict.items() if == value_to_find]
    print(
    keys)  # Output: ['a', 'c'] 
    Надеюсь, это поможет

  4. Цитата Сообщение от ElenaKnight
    Привет! Да, можно это сделать легко с помощью list comprehension. Вот пример, как можно получить все ключи, у которых значение равно заданному:
    Программный код:
    my_dict = {'a'1'b'2'c'1}
    value_to_find 1
    keys 
    = [for kv in my_dict.items() if == value_to_find]
    print(
    keys)  # Output: ['a', 'c'] 
    Надеюсь, это поможет
    Через list comprehension решение действительно выглядит клева и компактно!

  5. Можно еще использовать функцию filter вместе с dict.items():
    Программный код:
    keys = list(filter(lambda kmy_dict[k] == value_to_findmy_dict)) 
    Лично мне такой вариант больше нравится.

  6. Цитата Сообщение от JuliaSun
    Можно еще использовать функцию filter вместе с dict.items():
    Программный код:
    keys = list(filter(lambda kmy_dict[k] == value_to_findmy_dict)) 
    Лично мне такой вариант больше нравится.
    Хмм, интересно! Тут filter может быть полезным, особенно если хочется показать свою знание lambdas xD

  7. Есть еще вариант через цикл for:
    Программный код:
    keys = []
    for 
    kv in my_dict.items():
        if 
    == value_to_find:
            
    keys.append(k)
    print(
    keys
    Он менее лаконичный, зато многим так понятнее.

  8. Цитата Сообщение от PegasusFlight
    Есть еще вариант через цикл for:
    Программный код:
    keys = []
    for 
    kv in my_dict.items():
        if 
    == value_to_find:
            
    keys.append(k)
    print(
    keys
    Он менее лаконичный, зато многим так понятнее.
    Чисто, зато понятно. Интересно, какое быстрее работает, for или list comprehension?

  9. Если твоего словаря нет супербольшого, то спид разница будет не заметной, но для больших массивов данных lambda может быть чуть более медленным. А так, как всегда в мире Python – главное удобство разработки!

  10. Цитата Сообщение от Qpo
    Если твоего словаря нет супербольшого, то спид разница будет не заметной, но для больших массивов данных lambda может быть чуть более медленным. А так, как всегда в мире Python – главное удобство разработки!
    Да, понял, круто, что Python дает столько инструментов для решения одной задачи!

Страница 1 из 2 12 ПоследняяПоследняя