Как я могу получить ключ словаря как переменную непосредственно в Python (не путем поиска по значению)?
извините за этот основной вопрос, но мои поиски на этом не появляются ничего, кроме как получить ключ словаря на основе его значения, которое я бы предпочел не использовать, поскольку я просто хочу текст/имя ключа и беспокоюсь, что поиск по значению может в конечном итоге вернуть 2 или более ключей, если словарь имеет много записей... то, что я пытаюсь сделать, это:
mydictionary={'keyname':'somevalue'}
for current in mydictionary:
result = mydictionary.(some_function_to_get_key_name)[current]
print result
"keyname"
причина этого в том, что я печатаю их в документ, и я хочу использовать ключ имя и значение при этом
Я видел метод ниже, но это, кажется, просто возвращает значение ключа
get(key[, default])
9 ответов:
вы должны перебирать ключи с:
for key in mydictionary: print "key: %s , value: %s" % (key, mydictionary[key])
Если вы хотите напечатать ключ и значение, используйте следующую конструкцию:
for key, value in my_dict.iteritems(): print key, value
причина этого в том, что я печатаю их в документ, и я хочу использовать имя ключа и значение при этом
на основе вышеуказанного требования это то, что я хотел бы предложить:
keys = mydictionary.keys() keys.sort() for each in keys: print "%s: %s" % (each, mydictionary.get(each))
Если словарь содержит одну пару такой:
d = {'age':24}тогда вы можете получить как
field, value = d.items()[0]для Python 3.5, этого:
key = list(d.keys())[0]
просто:
mydictionary={'keyname':'somevalue'} result = mydictionary.popitem()[0]вы получите свой словарь и должны сделать его копию
итерация по словарю (i) вернет ключ, а затем с его помощью (i) получит значение
for i in D: print "key: %s, value: %s" % (i, D[i])
для python 3 Если вы хотите получить только ключи использовать. Замените печать (ключ) на печать(значения), если вам нужны значения.
for key,value in my_dict: print(key)
то, что я иногда делаю, это я создаю другой словарь, чтобы иметь возможность все, что я чувствую, что мне нужно получить доступ в виде строки. Затем я перебираю несколько словарей, соответствующих ключам, чтобы построить, например, таблицу с первым столбцом в качестве описания.
dict_names = {'key1': 'Text 1', 'key2': 'Text 2'} dict_values = {'key1': 0, 'key2': 1} for key, value in dict_names.items(): print('{0} {1}'.format(dict_names[key], dict_values[key])вы можете легко сделать для огромного количества словарей, чтобы соответствовать данным (Мне нравится тот факт, что со словарем вы всегда можете обратиться к чему-то хорошо известному как имя ключа)
да я использую словари для хранения результатов функций поэтому мне не нужно запускать эти функции каждый раз, когда я вызываю их только один раз, а затем получить доступ к результатам в любое время.
EDIT: в моем примере имя ключа на самом деле не имеет значения (мне лично нравится использовать одни и те же имена ключей, так как проще выбрать одно значение из любого из моих соответствующих словарей), просто убедитесь, что количество ключей в каждом словаре одинаковое
Comments