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



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



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

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


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



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



get(key[, default])
650   9  

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]

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

просто:

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

    Ничего не найдено.