2016-02-07 3 views
-3

Вот ДИКТ:Получение значение словаря в Python

sozluk_ata = {20225: 17, 20232: 9, 20233: 22, 20234: 3, 20235: 28, 20236: 69, ..} 

А вот мой код, чтобы получить значение элемента в словаре.

ders_adi_entry_1 = entry_1.get() 
ders_crn_entry_1 = int(entry_11.get()) 

y1 = "sozluk_%s[%d]" %(ders_adi_entry_1, ders_crn_entry_1) 
print (y1) 

Это дает мне sozluk_ata[20225], а не значение 17.

+0

Что такое 'entry_1'? – Farseer

+1

Ваш код не является MWE, см. Здесь: http://meta.tex.stackexchange.com/questions/3343/what-makes-a-good-mwe – Gabriel

+0

@Farseer ders_adi_entry_1 is ata и ders_crn_entry_1 is 20225, например, пользователь выберите его. Есть несколько диктов. –

ответ

2

Если вы просто хотите, чтобы значения вашего Словаре, используйте somethink как:

sozluk_ata = {20225: 17, 20232: 9, 20233: 22, 20234: 3, 20235: 28, 20236: 69} 

for key in sozluk_ata: 
    print(key, sozluk_ata[key]) 

который печатает:

20225 17 
20232 9 
20233 22 
20234 3 
20235 28 
20236 69 
+0

есть несколько словарей. Пользователь должен выбрать словарь, поэтому мне пришлось использовать% s –

+2

Если это так, вы можете сохранить эти несколько словарей в другом словаре, чтобы «искать» правильный словарь по ключу. – albert

2

В качестве общего подхода, который я хотел бы предложить что-то вроде этого:

def lookup(inp): 
    inp = int(inp) 
    for d in overall: 
     for k,v in d.items(): 
      if k == inp: 
       return v 

overall = [] 

sozluk_ata = {20225: 17, 20232: 9, 20233: 22, 20234: 3, 20235: 28, 20236: 69} 
sozluk_tur = {20374: 58, 20358: 31, 21825: 61} 
sozluk_bil = {25472: 65, 25473: 69, 20866: 40} 

overall.append(sozluk_ata) 
overall.append(sozluk_tur) 
overall.append(sozluk_bil) 

inp = input('Please type in a key: ') 

print(lookup(inp)) 

Это печатает соответствующее значение для заданного ключа, который пользователь вводил при запросе. Однако, поскольку он использует список overall, мы не можем сказать, в каком тиге содержится желаемая пара ключ-значение. Чтобы обеспечить эту функциональность, вам нужно что-то вроде dict вместо списка или списка кортежей.

Вместо добавления различных dicts друг друга (так называя .append() три раза с разными аргументами) вы можете также extend список со списком, как:

overall.extend([sozluk_ata, sozluk_tur, sozluk_bil]) 
1

Мы стремились найти 6-7 словарей для получения значения переменной crn_adı, которая дает нам пользователей. (Также мы хотим, чтобы пользователь, чтобы дать нам Dict, что мы ищем.) Мы пришли через эту проблему, как это:

sozluk_all = {"sozluk1": {keyandvalues}, "sozluk2": {keyandvalues}} 
x = input() 
crn_adı = input() 

y1 = "sozluk_%s"%(x) 
print(sozluk_all[y1][crn_adı]) 

спасибо вам все

Смежные вопросы