【问题标题】:How to concatenate strings with binary values in python?如何在python中将字符串与二进制值连接?
【发布时间】:2010-11-03 23:45:39
【问题描述】:

python 中将字符串与二进制值连接的最简单方法是什么?

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

寻找结果数据"abc0x1def0x1ghi0x1jkl" 0x1 是二进制值而不是字符串“0x1”。

【问题讨论】:

  • 那里没有二进制值。 0x1 是十六进制; 0b1 将是二进制的。

标签: python string binary concatenation


【解决方案1】:

我认为

joined = '\x01'.join(data) 

应该这样做。 \x01 是值为 0x01 的字节的转义序列。

【讨论】:

  • +1 非常感谢,我尝试过类似的事情,但没有考虑转义字符以创建“字符”...
  • 效果很好:8=10^A9=ABC^A10=BBB^A34=D
  • @pdc : 这个doesn’t work 带有mmap。
【解决方案2】:

chr() 函数将具有将变量转换为具有您要查找的二进制值的字符串的效果。

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

然后可以使用 join() 函数以二进制值作为分隔符连接一系列字符串。

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

【讨论】:

【解决方案3】:

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

>>> 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-20
    • 2019-11-23
    • 2023-03-15
    • 1970-01-01
    • 2021-07-08
    • 1970-01-01
    • 2017-08-08
    相关资源
    最近更新 更多