Her seferinde sözlüğün içinde dolaşmaktansa bir kere sözlük yapıp her seferinde onu kullansak?
old_dict = {
0: [' '],
1: ['.', ',', '?', ':', ';', '!'],
2: ['A', 'B', 'C', 'Ç'],
3: ['D', 'E', 'F'],
4: ['G', 'Ğ', 'H', 'I'],
5: ['İ', 'J', 'K', 'L'],
6: ['M', 'N', 'O', 'Ö'],
7: ['P', 'R', 'S'],
8: ['Ş', 'T', 'U', 'Ü'],
9: ['V', 'Y', 'Z'],
}
def index_times_key_dict(dict_):
new_dict = {}
for key, values in dict_.items():
for value_index, value in enumerate(values, 1):
new_dict[value] = value_index * str(key)
return new_dict
new_dict = index_times_key_dict(dict_)
#{' ': '0', '.': '1', ',': '11', '?': '111', ':': '1111', ';': '11111', '!': '111111', 'A': '2', 'B': '22', 'C': '222', 'Ç': '2222', 'D': '3', 'E': '33', 'F': '333', 'G': '4', 'Ğ': '44', 'H': '444', 'I': '4444', 'İ': '5', 'J': '55', 'K': '555', 'L': '5555', 'M': '6', 'N': '66', 'O': '666', 'Ö': '6666', 'P': '7', 'R': '77', 'S': '777', 'Ş': '8', 'T': '88', 'U': '888', 'Ü': '8888', 'V': '9', 'Y': '99', 'Z': '999'}
value1 = new_dict["S"]
value2 = new_dict["Z"]
Yok başka sözlük mözlük derseniz:
dict_ = {
0: [' '],
1: ['.', ',', '?', ':', ';', '!'],
2: ['A', 'B', 'C', 'Ç'],
3: ['D', 'E', 'F'],
4: ['G', 'Ğ', 'H', 'I'],
5: ['İ', 'J', 'K', 'L'],
6: ['M', 'N', 'O', 'Ö'],
7: ['P', 'R', 'S'],
8: ['Ş', 'T', 'U', 'Ü'],
9: ['V', 'Y', 'Z'],
}
def index_times_key(dict_, match_value):
for key, values in dict_.items():
for value_index, value in enumerate(values, 1):
if value == match_value:
return value_index * str(key)
raise KeyError(f"there is no value: `{match_value}` in the dict")
print(index_times_key(dict_, "S"))
# '777'