如何在 Python 中多次复制位列表,反之亦然

How to duplicate the list of bit multiple times and its vice versa in Python

我有一个位列表:

a = 00111001

并对列表进行乘法运算:

multi = a * 3

显示结果如下:

a = 001110010011100100111001

但是,我需要这样的结果,即每个位连续出现三次:

a = 0000001111111111000000111

另外,如何把a = 0000001111111111000000111转成a = 00111001回来?

我希望任何人都可以帮助我。谢谢。

>>> a = '00111001'
>>> n=3
>>> ''.join(map(lambda x:x*3, a))
'000000111111111000000111'
s = '00111001'
n = 3
''.join([s[i]*n for i in range(len(s))])

或更简洁地说,

''.join(c*n for c in s)

但这假定您的 'list of bit' 是一个可以迭代的字符串。如果你有一个实际的数字,那么你可以先将它转换成一个字符串,但是你需要知道在前导零的情况下你总共想要多少个二进制数字:

b = 57
bin(b)

'0b111001'

m = 8
s = '{b:>0{m}s}'.format(b=bin(b)[2:], m=m)
s

'00111001'

''.join([s[i]*n for i in range(len(s))])

'000000111111111000000111'