#python #string #loops #dictionary
Вопрос:
У меня есть список, который прошел цикл for, чтобы создать каждый элемент отдельно в виде строки. Затем я создал переменную для разделения этих строк, чтобы получить пары ключ=(в результате чего появилось несколько списков). В основном в этих списках есть только два элемента: [0], которые будут использоваться в качестве ключей, и [1], которые будут использоваться в качестве значений. Как преобразовать эти списки в словари, в которых дублированные ключи объединены, а их [1]являются их значением? Я новичок в этом, поэтому, пожалуйста, никаких причудливых кодов, таких как def. Подумайте о главном.
lst = ["help-please" , "desperate-fix", "help-today", "desperate-need"]
for i in lst:
a = i
b = a.split("-")
c = b[0] #keys
d = b[1] #values
e = {c:d} #how do I fix this to one key to many values? I believe this should be a loop to
facilitate many key:value pairs
Моя конечная цель:
e = {"help": ["please", "today"], "desperate": ["fix", "need"]
Ответ №1:
lst = ["help-please" , "desperate-fix", "help-today", "desperate-need"]
ret_dict = {}
for i in lst:
a = i
b = a.split("-")
c = b[0] #keys
d = b[1] #values
if c in ret_dict.keys():
ret_dict[c].append(d) # If key already exists then append to list
else:
ret_dict[c] = [d] # else make new list and add d as the first element
print(ret_dict)