我想收集包含数字的var并创建一个包含2位数字的列表。
例如:
x = 123456
我想创建一个包含2位数字块的列表
y = [12,34,56]
我似乎无法想出这个。
答案 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]