Как объединить список в кортеже в список кортежей? - PullRequest
0 голосов
/ 16 октября 2019

Список кортежей со списком в каждом кортеже:

[('22', ['de', 're']), ('11', ['c']), ('8, ['a', 'b', 'd', 'e'])]

Я получил его после того, как отсортировал мой dict

dictionary = sorted(dictionary.items(), key=lambda x: x[0])

return dictionary

Интересно,на самом деле можно сделать следующее: цель состоит в том, чтобы получить из этого:

[('8, ['a', 'b', 'd', 'e']), ('11', ['c']), ('22', ['de', 're'])]

This:

[('8', 'a, b, d, e'), ('11', 'c'), ('22', 'de, re')]

Ответы [ 4 ]

0 голосов
/ 17 октября 2019
def myFun(t):
    return int(t[0])
a = [('22', ['de', 're']), ('11', ['c']), ('8', ['a', 'b', 'd', 'e'])]
sorted(a, key=myFun)

Output- [('8', ['a', 'b', 'd', 'e']), ('11', ['c']), ('22',['de', 're'])] вы можете попробовать это

0 голосов
/ 16 октября 2019

Попробуйте это:

lst=[('11', ['a', 'b', 'd', 'e']), ('22', ['c']), ('8', ['de', 're'])]

res=list(map(lambda x: tuple([x[0]]+ [", ".join([el for el in x[1]])]), lst))

print(res)

Вывод:

[('11', 'a, b, d, e'), ('22', 'c'), ('8', 'de, re')]
[Program finished]
0 голосов
/ 16 октября 2019

Это понимание должно быть тем, что вы ищете:

lst = [('11', ['a', 'b', 'd', 'e']), ('22', ['c']), ('8', ['de', 're'])]
res = [(n, ', '.join(s)) for n, s in lst]

print(res)

Отпечатки:

[('11', 'a, b, d, e'), ('22', 'c'), ('8', 'de, re')]
0 голосов
/ 16 октября 2019

Рассматривали ли вы использование функции tuple()? Эта функция принимает итерацию некоторого вида (в вашем случае, список) и возвращает кортеж со значениями в этом списке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...