2

我有一个类似的清单

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)
4

3 回答 3

4

你可以像这样调整它:

代码:

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

这会将整数数字转换为 str,然后在转换回整数之前将它们连接起来。

测试代码:

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]]
于 2018-05-28T14:37:39.887 回答
1

为了好玩(并且为了证明一种完全不同的方法):

>>> [[sum(i * 10**(len(t) - k - 1) for k, i in enumerate(t))] for t in A]
[[123], [345], [357]]
于 2018-05-28T14:51:13.300 回答
0

使用带有列表理解的 map:

[[int(''.join(map(str, x)))] for x in A]
# [[123], [345], [357]]
于 2018-05-28T14:40:35.220 回答