在Python中获取字典值

在Python中获取字典值,python,dictionary,Python,Dictionary,这是格言: 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, 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的值。

如果您只想知道dict的值,请使用以下方法:

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

作为一般方法,我建议如下:

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))
sozluk_all = {"sozluk1": {keyandvalues}, "sozluk2": {keyandvalues}}
x = input()
crn_adı = input()

y1 = "sozluk_%s"%(x)
print(sozluk_all[y1][crn_adı])
这将打印用户在请求时键入的给定密钥的相应值。然而,由于它整体上使用列表,我们无法判断所需的键值对包含在哪个dict中。为了提供这种功能,您需要像dict这样的东西,而不是列表或元组列表

不要为彼此追加不同的dict,而是调用。使用不同的参数追加三次,您还可以使用如下列表扩展列表:

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

我们的目标是搜索6-7本字典,并从用户那里获得crn_adı变量的值。我们还希望用户提供我们搜索的目录。 我们是这样解决这个问题的:

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))
sozluk_all = {"sozluk1": {keyandvalues}, "sozluk2": {keyandvalues}}
x = input()
crn_adı = input()

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

谢谢大家

您的代码不是MWE,请参见此处:@Farseer ders_adi_entry_1是ata,ders_crn_entry_1是20225,例如用户选择它。有多个DIC。@Melihmuhammetgundodu:请提供更多代码以显示这些多个DIC和用户输入。@albert sozluk_tur={20374:58,20358:31,21825:61..sozluk_bil={25472:6525473:6920866:40…像那样,在tkinter中有2个条目。例如,用户将ata写入第一个条目,将20225写入第二个条目。我希望程序给我17。数据从何处获取?是否手动生成这些dict?我正在考虑,因为我们需要一个包含所有dict的数据类型,以便在o中查看顺序以搜索所需的输出值。有多个词典。用户应选择词典,这就是我必须使用%s的原因。如果这样,您可以将这几个词典存储在另一个词典中,以便按键“搜索”正确的词典。