2024-05-14 18:17:01 发布
网友
在python中,有没有什么巧妙的技巧可以将二进制数分成五位数的组?在
'0000100011011101101110100010111'=>;['00010','00110','10111'。。。]在
编辑: 我想写一个密码/编码器,以便生成“易于通过电话读取”的令牌。标准base32编码有以下缺点:
感谢大家,我能够用20行python完成自己的任务。我的编码器去掉了“I”、“L”、“O”和“U”,结果序列很难猜测。在
>>> [''.join(each) for each in zip(*[iter(s)]*5)] ['00010', '10001', '10111', '01101', '11010', '00101']
或者:
[编辑]
这个问题是格雷格·休吉尔提出的,那两个尾随的位子怎么办?以下是一些可能性:
>>> from itertools import izip_longest >>> >>> map(''.join, izip_longest(*[iter(s)]*5, fillvalue='')) ['00010', '10001', '10111', '01101', '11010', '00101', '11'] >>> >>> map(''.join, izip_longest(*[iter(s)]*5, fillvalue=' ')) ['00010', '10001', '10111', '01101', '11010', '00101', '11 '] >>> >>> map(''.join, izip_longest(*[iter(s)]*5, fillvalue='0')) ['00010', '10001', '10111', '01101', '11010', '00101', '11000']
>>> a='00010100011011101101110100010111' >>> [a[i:i+5] for i in range(0, len(a), 5)] ['00010', '10001', '10111', '01101', '11010', '00101', '11']
另一种分组ITerable的方法,来自itertools示例:
def grouper(n, iterable, fillvalue=None): "grouper(3, 'ABCDEFG', 'x') --> ABC DEF Gxx" args = [iter(iterable)] * n return izip_longest(fillvalue=fillvalue, *args)
或者:
^{pr2}$[编辑]
这个问题是格雷格·休吉尔提出的,那两个尾随的位子怎么办?以下是一些可能性:
另一种分组ITerable的方法,来自itertools示例:
相关问题 更多 >
编程相关推荐