如何在Python中连接带有二进制值的字符串?

4 投票
3 回答
24016 浏览
提问于 2025-04-15 12:20

在Python中,最简单的方法是什么,可以把字符串和二进制值连接在一起呢?

sep = 0x1
data = ["abc","def","ghi","jkl"]

我想要的结果是 "abc0x1def0x1ghi0x1jkl",其中的0x1是二进制值,而不是字符串"0x1"。

3 个回答

0

我知道这不是最好的方法,但在不同的情况下,这个问题还有另一种可能有用的做法:

>>> x=(str(bin(0b110011000)))
>>> b=(str(bin(0b11111111111)))
>>> print(x+b)
0b1100110000b11111111111

如果需要去掉每个字符串最左边的两个字符(也就是0b这个前缀),可以用切片函数 [2:],设置值为2,这样就可以做到:

>>> x=(str(bin(0b110011000)[2:]))
>>> b=(str(bin(0b11111111111)[2:]))
>>> print(x+b)
11001100011111111111
4

chr() 函数的作用是把一个变量转换成你想要的二进制值对应的字符串。

>>> sep = 0x1
>>> sepc = chr(sep)
>>> sepc
'\x01'

接着,你可以使用 join() 函数,把一系列字符串用你的二进制值作为分隔符连接起来。

>>> data = ['abc']*3
>>> data
['abc', 'abc', 'abc']
>>> sepc.join(data)
'abc\x01abc\x01abc'
11

我觉得

joined = '\x01'.join(data) 

这样做就可以了。\x01 是一个特殊的表示方式,用来表示一个值为 0x01 的字节。

撰写回答