Проблема вашего подхода в том, что nameslist
никогда не инициализируется и сбрасывается на каждой итерации, которую вы, вероятно, хотели бы сделать:
txt = '''food: bacon, eggs, toast
drinks: orange juice, coffee'''
nameslist = [] # initialize namelist
groups = txt.split('\n\n')
for group in groups:
nameslist.append(group.split(': ').pop(0)) # append instead of overwriting
print(groups)
print(nameslist) # ['food', 'drinks']
Кроме того, вы можете выбросить l oop и используйте list comprehension
для достижения этого:
namelist = [x.split(':')[0] for x in groups] # ['food', 'drinks']