BG Development


  Reply to this topicStart new topicStart Poll

> По-разумен вариант
cracker.
Публикувано на: 07-12-2023, 10:16
Quote Post



Име:
Група: Потребител
Ранг: Новопостъпил

Мнения: 26
Регистриран на: 13.11.23



Здравейте.Искам да взема стойността на key-a по дадено value в речник.В момента аз процедирам така:
CODE
key_list = list(translate_dictionary.keys()); # will be used later in the decoding process
value_list =  list(translate_dictionary.values());


CODE
for eachLetter in all_letters:
       try:
           decoded_word += key_list[value_list.index(eachLetter)];
       except ValueError:
           continue;


Има ли по-икономичен от към памет вариант, без да създавам двата листа, съдържащи key-овете и стойностите.
PMEmail Poster
Top
ici
Публикувано на: 07-12-2023, 11:17
Quote Post


Group Icon
Име: Ивайло Илчев
Група: VIP
Ранг: Почетен член

Мнения: 18494
Регистриран на: 06.06.04



CODE
dic ={"a": "A","b":"B","c":"C"}
dic = dict((v,k) for k,v in dic.items())

print("key by value:",dic["C"])

QUOTE
*** Remote Interpreter Reinitialized ***
key by value: c
>>>


ПП. Може и така:
QUOTE
>>> dic.get("B","<?>")
'b'
>>> dic.get("s","<?>")
'<?>'
>>>


Това мнение е било редактирано от ici на 07-12-2023, 11:20


--------------------
Ние не сме в една лодка, ние сме в една буря. Лодките са различни.

Следващият път когато се почувстваш ненужен, грозен и недооценен, помни че освен това си и тъп.
PMEmail PosterUsers Website
Top
cracker.
Публикувано на: 07-12-2023, 12:10
Quote Post



Име:
Група: Потребител
Ранг: Новопостъпил

Мнения: 26
Регистриран на: 13.11.23



благодаря, Ици.Втория вариант ще ползвам.

Това мнение е било редактирано от cracker. на 07-12-2023, 12:10
PMEmail Poster
Top
ici
Публикувано на: 07-12-2023, 12:13
Quote Post


Group Icon
Име: Ивайло Илчев
Група: VIP
Ранг: Почетен член

Мнения: 18494
Регистриран на: 06.06.04



Ако се повтарят стойностите:
CODE
dic ={"a": "A","b":"B","c":"C","d":"A","e":"A"}

d = {}
for k,v in dic.items():
   d[v] = d.get(v,list()) + [k,]

print(d.get("A",[]))
print(d.get("X",[]))

QUOTE
*** Remote Interpreter Reinitialized ***
['a', 'd', 'e']
[]
>>>


--------------------
Ние не сме в една лодка, ние сме в една буря. Лодките са различни.

Следващият път когато се почувстваш ненужен, грозен и недооценен, помни че освен това си и тъп.
PMEmail PosterUsers Website
Top
cracker.
Публикувано на: 07-12-2023, 12:25
Quote Post



Име:
Група: Потребител
Ранг: Новопостъпил

Мнения: 26
Регистриран на: 13.11.23



QUOTE (ici @ 07-12-2023, 12:13)
Ако се повтарят стойностите:
CODE
dic ={"a": "A","b":"B","c":"C","d":"A","e":"A"}

d = {}
for k,v in dic.items():
   d[v] = d.get(v,list()) + [k,]

print(d.get("A",[]))
print(d.get("X",[]))

QUOTE
*** Remote Interpreter Reinitialized ***
['a', 'd', 'e']
[]
>>>

да, за повтарящи се стойности не го вземах в предвид, но ще си запазя примера ти за бъдеще.
Аз повтарящи нямам в случая, всяка буква от азбуката отговаря на определен сет точки и чертички.
PMEmail Poster
Top
1 потребители преглеждат тази тема в момента (1 гости, 0 анонимни потребители)
Потребители, преглеждащи темата в момента:

Topic Options Reply to this topicStart new topicStart Poll

 


Copyright © 2003-2019 | BG Development | All Rights Reserved
RSS 2.0