Python: сравнение ключа словаря со строкой

Я пытаюсь сравнить ключ в словаре со строкой в ​​Python, но не могу найти способ сделать это. Допустим, у меня есть:

dict = {"a" : 1, "b" : 2}

И я хочу сравнить ключ первого индекса в словаре (который является «а») со строкой. Так что-то вроде:

if ´Dictionary key´ == "a":
    return True
else:
    return False

Есть способ сделать это? Благодарю за всю помощь, которую я могу получить.

dict не имеет индексов. У него есть ключи и ценности

anjaneyulubatta505 25.04.2018 11:44

Словари - это не упорядоченные структуры данных, нет «первого индекса». 'a' in dict (кстати, это плохая репутация, поскольку он затмевает встроенный) скажет вам, является ли это ключом вообще. Также обратите внимание, что вы можете просто return <boolean_expression>.

jonrsharpe 25.04.2018 11:44
print("a" in dict.keys())?
Rakesh 25.04.2018 11:46

@Rakesh не использует x in d.keys(), это в лучшем случае избыточно (в python 3), потому что вы можете просто сделать x in d, в худшем случае, в Python 2 он материализует новый список и меняет поиск на основе хэша с постоянным временем на O (N) линейный поиск .... но да, в том смысле, о котором вы говорите.

juanpa.arrivillaga 25.04.2018 11:48

Объекты Python dict не имеют индексов, у них есть ключи. Объекты Python dict не являются объектами javascript.

juanpa.arrivillaga 25.04.2018 11:50
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
3
5
12 463
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Словари Python имеют доступ к ключи и значения с помощью этих ключи.

Вы можете получить доступ к ключам следующим образом, ваш ключ dict будет сохранен в переменной key:

my_dict = {"a" : 1, "b" : 2}
for key in my_dict:
    print key

Это напечатает:

a
b

Затем вы можете сделать любые сравнения, которые захотите:

my_dict = {"a" : 1, "b" : 2}
for key in my_dict:
    if key == "a":
        return True
    else:
        return False

который можно улучшить до:

my_dict = {"a" : 1, "b" : 2}
print "a" in my_dict.keys()

Затем вы можете получить доступ к значениям для каждого ключа в своем dict следующим образом:

my_dict = {"a" : 1, "b" : 2}
for key in my_dict:
    print my_dict[key]

Это напечатает:

1
2

Предлагаю вам прочитать больше о словарях из официальной документации Python: https://docs.python.org/3.6/tutorial/datastructures.html#ictionaries

последние пять строк можно просто заменить на return "a" in my_dict

Ma0 25.04.2018 11:50

@ Ev.Kounis Да, очевидно, но я просто использую код OP, чтобы не запутать его, я добавлю ваше предложение в редакцию

Adam Jaamour 25.04.2018 11:52

@ Ev.Kounis это будет print "a" in my_dict.keys()

Adam Jaamour 25.04.2018 12:01
result = True if "a" in dict.keys() else False
return result

Для примера в вашем вопросе result будет True.

Если вы хотите просмотреть каждый ключ, индексы не помогут, потому что словари в Python не могут быть вместо них. Вместо этого вы можете сделать следующее:

for key in dict.keys():
    #do something with key 

Другие вопросы по теме