Я пытаюсь сравнить ключ в словаре со строкой в Python, но не могу найти способ сделать это. Допустим, у меня есть:
dict = {"a" : 1, "b" : 2}
И я хочу сравнить ключ первого индекса в словаре (который является «а») со строкой. Так что-то вроде:
if ´Dictionary key´ == "a":
return True
else:
return False
Есть способ сделать это? Благодарю за всю помощь, которую я могу получить.
Словари - это не упорядоченные структуры данных, нет «первого индекса». 'a' in dict (кстати, это плохая репутация, поскольку он затмевает встроенный) скажет вам, является ли это ключом вообще. Также обратите внимание, что вы можете просто return <boolean_expression>.
print("a" in dict.keys())?
@Rakesh не использует x in d.keys(), это в лучшем случае избыточно (в python 3), потому что вы можете просто сделать x in d, в худшем случае, в Python 2 он материализует новый список и меняет поиск на основе хэша с постоянным временем на O (N) линейный поиск .... но да, в том смысле, о котором вы говорите.
Объекты Python dict не имеют индексов, у них есть ключи. Объекты Python dict не являются объектами javascript.






Словари 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
@ Ev.Kounis Да, очевидно, но я просто использую код OP, чтобы не запутать его, я добавлю ваше предложение в редакцию
@ Ev.Kounis это будет print "a" in my_dict.keys()
result = True if "a" in dict.keys() else False
return result
Для примера в вашем вопросе result будет True.
Если вы хотите просмотреть каждый ключ, индексы не помогут, потому что словари в Python не могут быть вместо них. Вместо этого вы можете сделать следующее:
for key in dict.keys():
#do something with key
dict не имеет индексов. У него есть ключи и ценности