获取一个数字列表(1个元素)并使用python将其分解为块?

时间:2014-01-02 19:27:36

标签: python

我想收集包含数字的var并创建一个包含2位数字的列表。

例如:

x = 123456

我想创建一个包含2位数字块的列表

y = [12,34,56]

我似乎无法想出这个。

4 个答案:

答案 0 :(得分:3)

使用模数和分区。

def chunks(n):
    if n < 0: raise Exception ("Don't")
    while n:
        yield n % 100
        n //= 100

a = [c for c in chunks (123456)][::-1]
print(a)

另外PS:对于输入12345,输出为[1, 23, 45]

和PPS:这是用于FFT乘法吗?

答案 1 :(得分:0)

如果x是字符串:

x = '1234563'

a = [x[i * 2 : (i + 1) * 2] for i in range(len(x) // 2)]

如果x是int:

x = 1234563

l = len(str(x))
a = [(x // (10 ** (i - 2))) % 100 for i in range(l, 2, -2)]

答案 2 :(得分:0)

>>> x = 123456
>>> [int(str(x)[i:i+2]) for i in range(0, len((str(x)), 2)]
[12, 34, 56]

答案 3 :(得分:0)

def trunk(numbers, chunkSize):
    new_list = []
    nums = str(numbers)
    for x in xrange(0, len(nums), chunkSize):
        new_list.append(int(nums[x:chunkSize+x]))
    return new_list

>>> x = 123456
>>> trunk(x, 2)
[12, 34, 56]
>>> x = 12345
>>> trunk(x, 2)
[12, 34, 5]