Как получить ключ словаря как переменную непосредственно в Python (не путем поиска по значению)?

Извините за этот базовый вопрос, но мои поиски по этому поводу не открывают ничего, кроме того, как получить ключ словаря на основе его значения, которое я бы предпочел не использовать, поскольку мне просто нужен текст/имя ключа и am опасается, что поиск по значению может привести к возврату 2 или более ключей, если словарь содержит много записей... что я пытаюсь сделать, это следующее:

mydictionary={'keyname':'somevalue'}
for current in mydictionary:

   result = mydictionary.(some_function_to_get_key_name)[current]
   print result
   "keyname"

Причиной этого является то, что я печатаю их в документе, и я хочу использовать имя ключа и значение при этом

Я видел метод ниже, но это, похоже, просто возвращает значение ключа

get(key[, default])

Ответ 1

Вы должны перебирать клавиши с помощью:

for key in mydictionary:
   print "key: %s , value: %s" % (key, mydictionary[key])

Ответ 2

Если вы хотите напечатать ключ и значение, используйте следующее:

for key, value in my_dict.iteritems():
    print key, value

Ответ 3

Причиной этого является то, что я печатаю их в документе, и я хочу использовать имя ключа и значение при этом

Основываясь на вышеуказанном требовании, я предлагаю следующее:

keys = mydictionary.keys()
keys.sort()

for each in keys:
    print "%s: %s" % (each, mydictionary.get(each))

Ответ 4

Если словарь содержит одну пару, например:

d = {'age':24}

то вы можете получить как

field, value = d.items()[0]

Ответ 5

keys=[i for i in mydictionary.keys()] или keys = list(mydictionary.keys())

Ответ 6

Проще всего:

mydictionary={'keyname':'somevalue'}
result = mydictionary.popitem()[0]

Вы будете использовать словарь и должны сделать его копию

Ответ 7

Итерация по словарю (i) вернет ключ, а затем, используя его (i), чтобы получить значение

for i in D:
    print "key: %s, value: %s" % (i, D[i])

Ответ 8

Для python 3 Если вы хотите использовать только ключи, используйте это. Замените печать (ключ) печатью (значениями), если вы хотите значения.

for key,value in my_dict:
  print(key)

Ответ 9

То, что я иногда делаю, я создаю еще один словарь, чтобы быть в состоянии, насколько мне кажется, мне нужно получить доступ как строку. Затем я перебираю несколько словарей, соответствующих ключам для сборки, например. таблицу с первым столбцом в качестве описания.

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])

Вы можете легко сделать для огромного количества словарей соответствие данных (мне нравится тот факт, что со словарем вы всегда можете ссылаться на то, что хорошо известно как имя ключа)

yes Я использую словари для хранения результатов функций, поэтому мне не нужно запускать эти функции каждый раз, когда я их вызываю только один раз, а затем получаю доступ к результатам в любое время.

EDIT: в моем примере ключевое имя действительно не имеет значения (мне лично нравится использовать те же ключевые имена, что и проще выбрать одно из моих соответствующих словарей), просто убедитесь, что количество ключей в каждый словарь является одним и тем же