使用 join 意外输出 5 个二进制 A


seq = b'A'
chunk_size = 4
first_partition=1
rv = seq[0:first_partition].join(
[b'A'] * (chunk_size - first_partition))

输出:

rv = b'AAAAA'

为什么rv的值是5 b'A'而不是4?

只要把它分解出来,看看你实际在做什么:

>>> seq[0:first_partition]
b'A'
>>> [b'A'] * (chunk_size - first_partition)
[b'A', b'A', b'A']

如果你用一个A作为分隔符加入3个A,你会得到5个A
这里有一个等价的:

>>> '-'.join('OOO')
'O-O-O'

您正在使用b'A'作为分隔符加入3个b'A'([b'A',b'A'

最新更新