Как объединить элементы внутри кортежа, в список кортежей? - PullRequest
0 голосов
/ 28 мая 2018

У меня есть список типа

A = [(1, 2, 3), (3, 4, 5), (3, 5, 7)] 

, и я хочу превратить его в

A = [[123], [345], [357]]

Есть ли способ сделать это?

Мой верхний списокс кортежем происходит от функции перестановки, так что, возможно, вы можете порекомендовать мне изменить что-то в этом коде

def converter(N):
    y = list(str(N))
    t = [int(x) for x in y]
    f = list(itertools.permutations(t))
    return f

r = converter(345)
print(r)

Ответы [ 3 ]

0 голосов
/ 28 мая 2018

Используйте карту со списком-пониманием:

[[int(''.join(map(str, x)))] for x in A]
# [[123], [345], [357]]
0 голосов
/ 28 мая 2018

Для развлечения (и для доказательства совершенно другого подхода):

>>> [[sum(i * 10**(len(t) - k - 1) for k, i in enumerate(t))] for t in A]
[[123], [345], [357]]
0 голосов
/ 28 мая 2018

Вы можете изменить это следующим образом:

Код:

[[int(''.join(str(i) for i in x))] for x in a]

, который преобразует целые числа в строку, а затем соединяет их перед преобразованием обратно в целое число.

Код теста:

a = [(1, 2, 3), (3, 4, 5), (3, 5, 7)]
print([[int(''.join(str(i) for i in x))] for x in a])

Результаты:

[[123], [345], [357]]
...