Разделение списка на части с помощи символа запятая [ , ]

Доброго времени суток всем!!! У меня есть словарь, пример:

Caption = [
            {
             'ter': '11', 
             'ber': '22', 
             'ner': {
                     'a': '1', 
                     'b': '2',
                     'c': '3', 
                     'd': '4', 
                     'e': '5'
                     }
             },
             {
             'ter': '11', 
             'ber': '22', 
             'ner': {
                     'a': '1', 
                     'b': '2',
                     'c': '3', 
                     'd': '4', 
                     'e': '5'
                     }
             },
             {
             'ter': '11', 
             'ber': '22', 
             'ner': {
                     'a': '1', 
                     'b': '2',
                     'c': '3', 
                     'd': '4', 
                     'e': '5'
                     }
             },   
           ]

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

Caption = [('1', '2', '3', '4', '5'),
           ('1', '2', '3', '4', '5'),
           ('1', '2', '3', '4', '5'),
           ('1', '2', '3', '4', '5')]

А выводятся данные сплошняком в одну строчку без запятой.

Caption =  [('1', '2', '3', '4', '5', 
             '1', '2', '3', '4', '5', 
             '1', '2', '3', '4', '5', 
             '1', '2', '3', '4', '5',)]
  

вот код который я написал:

def listos(Caption):
    distr = []
    for i in range(len(Caption)):
        rsort = Caption[i]['ner']
        for key, value in rsort.items():
            distr.append(value)
    return [tuple(distr)]

print(listos(Caption))

Помогите пожалуйста решить данное затруднения.


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

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

В функции listos теряется информация о том, как нужно разделять массив на строки Как вариант, функция может возвращать список списков:

def listos(Caption):
    distr = []
    for i in range(len(Caption)):
        rsort = Caption[i]['ner']
        lst = []
        for key, value in rsort.items():
            lst.append(value)
        distr.append(lst)
    return tuple(distr)

И тогда print можно вызвать так:

print(*listos(Caption), sep=";\n")
→ Ссылка
Автор решения: Dima

В питоне разделителем является запятая, а не точка с запятой. Также у Вас нейминг переменных не по pep.

def listos(Caption):
    ners = []
    for item in Caption:
        ners.append(tuple(item["ner"].values()))
    return ners
print(listos(Caption))
#  [('1', '2', '3', '4', '5'), ('1', '2', '3', '4', '5'), ('1', '2', '3', '4', '5')]
→ Ссылка