Перенести элементы списка в словарь

Дан список слов, английских, и нескольких переводов после. Каждое английское сделать ключем в словаре, а русское, т.е перевод перенести в значение ключа списком.

     TEXT5=['act up', 'барахлить', 'плохо работать', 'плохо себя вести', 'капризничать', 'болеть', 
       'мучить', 'оправдывать (ожидания)',
       'ask around', 'расспрашивать', 'искать', 'back away', 'отступаться', 'с',
       'back up', 'вызывать затор', 'скопление', 'создавать резеврную копию',
       'back off', 'отступать', 'возвращаться', 'сбрасывать скорость', 'be back', 'возвращаться']   
     Phrase_VerbDictFinal={'act up': [],
              'ask around': [], 'back away': [], 'back up': [], 'back off': [], 'be back': []}

Примерно такой цикл пришел в голову.
     
    for i in TEXT5:
          for k in Phrase_VerbDictFinal:
              while i not in Phrase_VerbDictFinal.values():
                  Phrase_VerbDictFinal.values().append(str(i))

и такую ошибку выдает
'builtin_function_or_method' object has no attribute 'append'


    


 ручное изменение словаря и добавления перевода
     VerbDictmini2={
    'be up to': [],
    'blow out': [],
    'blow up': [],
    'break in': [],
    'break out': []
            }

    Translate=''
    while r<len(VerbDictmini2):
        for i in VerbDictmini2.values():
            while Translate!='Next':
                Translate = input(str())
                if Translate=='Next' or Translate=='next' :
                    print(VerbDictmini2)
                    break
                i.append(str(Translate))
                File=open('Phrase_verbDictmini2.txt','w', encoding='utf-8')
                File.write(str(VerbDictmini2))
                print(VerbDictmini2)
                File.close()
    print(VerbDictmini2)

Ответы (2 шт):

Автор решения: n1tr0xs

Можно так сделать:

TEXT5=[
    'act up', 'барахлить', 'плохо работать', 'плохо себя вести',
    'капризничать', 'болеть', 'мучить', 'оправдывать (ожидания)',
    'ask around', 'расспрашивать', 'искать', 'back away', 'отступаться', 'с',
    'back up', 'вызывать затор', 'скопление', 'создавать резеврную копию',
    'back off', 'отступать', 'возвращаться', 'сбрасывать скорость',
    'be back', 'возвращаться',
]   

Phrase_VerbDictFinal={
    'act up': [],
    'ask around': [],
    'back away': [],
    'back up': [],
    'back off': [],
    'be back': []
}

# записываем индексы английских слова
indexes = sorted((TEXT5.index(word)) for word in Phrase_VerbDictFinal)
# добавляем для обработки последнего слова
indexes.append(len(TEXT5))

for i, start in enumerate(indexes[:-1]):
    end = indexes[i+1]
    Phrase_VerbDictFinal[TEXT5[start]] = TEXT5[start+1:end]
print(Phrase_VerbDictFinal)
#{'act up': ['барахлить', 'плохо работать', 'плохо себя вести', 'капризничать', 'болеть', 'мучить', 'оправдывать (ожидания)'], 'ask around': ['расспрашивать', 'искать'], 'back away': ['отступаться', 'с'], 'back up': ['вызывать затор', 'скопление', 'создавать резеврную копию'], 'back off': ['отступать', 'возвращаться', 'сбрасывать скорость'], 'be back': ['возвращаться']}

Ну или можно воспользовать Dict Comprehensions:

# записываем индексы английских слова
indexes = sorted((TEXT5.index(word)) for word in Phrase_VerbDictFinal)
# добавляем для обработки последнего слова
indexes.append(len(TEXT5))

Phrase_VerbDictFinal = {
    TEXT5[indexes[i]]: TEXT5[indexes[i]+1:indexes[i+1]]
    for i in range(len(indexes)-1)
}
→ Ссылка
Автор решения: SergFSM

можно из списка сделать словарь, чтобы отделить английские слова используем регулярку:

from re import fullmatch

TEXT5 = [
    'act up', 'барахлить', 'плохо работать', 'плохо себя вести',
    'капризничать', 'болеть', 'мучить', 'оправдывать (ожидания)',
    'add in', 'включать', # <-----------------------------------элемент добавлен
    'ask around', 'расспрашивать', 'искать', 'back away', 'отступаться', 'с',
    'back up', 'вызывать затор', 'скопление', 'создавать резеврную копию',
    'back off', 'отступать', 'возвращаться', 'сбрасывать скорость',
    'be back', 'возвращаться']   

TEXT5_dict = {}
for i in TEXT5:
    if fullmatch(r'[a-z ]+',i):
        key = i
        TEXT5_dict[key] = []
    else:
        TEXT5_dict[key].append(i)

>>> TEXT5_dict
'''
{'act up': ['барахлить',
  'плохо работать',
  'плохо себя вести',
  'капризничать',
  'болеть',
  'мучить',
  'оправдывать (ожидания)'],
 'add in': ['включать'],
 'ask around': ['расспрашивать', 'искать'],
 'back away': ['отступаться', 'с'],
 'back up': ['вызывать затор', 'скопление', 'создавать резеврную копию'],
 'back off': ['отступать', 'возвращаться', 'сбрасывать скорость'],
 'be back': ['возвращаться']}

ps: первым элементом в TEXT5 должно быть английское слово, иначе будет ошибка

→ Ссылка