为什么Python会跳过字符串连接语句中的第一个元素?
下面是一个简单的例子:为什么Python会跳过字符串连接语句中的第一个元素?,python,string,join,Python,String,Join,下面是一个简单的例子: In [155]: exampleArray = bytearray([0xc0, 0xff, 0x01]) In [156]: exampleArray Out[156]: bytearray(b'\xc0\xff\x01') In [157]: print ' 0x'.join('{:02x}'.format(x) for x in exampleArray) c0 0xff 0x01 但我想要的是 0xc0 0xff 0x01如您在以下内容中所读: 返回一个字符串
In [155]: exampleArray = bytearray([0xc0, 0xff, 0x01])
In [156]: exampleArray
Out[156]: bytearray(b'\xc0\xff\x01')
In [157]: print ' 0x'.join('{:02x}'.format(x) for x in exampleArray)
c0 0xff 0x01
但我想要的是
0xc0 0xff 0x01如您在以下内容中所读:
返回一个字符串,该字符串是iterable中字符串的串联。如果iterable中有任何非字符串值,包括bytes对象,则会引发TypeError。元素之间的分隔符是提供此方法的字符串
所以“0x”是放在字符串之间的分隔符。但是,您可以通过以下方法轻松解决此问题:
print ' '.join('0x{:02x}'.format(x) for x in exampleArray)
str.join仅将连接件放置在连接的元素之间。从:
元素之间的分隔符是提供此方法的字符串
我的
改为在空格上联接,并更改格式以包含0x前缀:
更改格式以包含0x前缀;请注意,您需要调整字段宽度,以将额外的2个字符考虑在内。每个字段现在占用4个字符,包括0x前缀
演示:
Joins在元素之间写入“0x”。请尝试打印“”。在exampleArray中加入“0x{:02x}”。formatx for x
' '.join('{:#04x}'.format(x) for x in exampleArray)
>>> exampleArray = bytearray([0xc0, 0xff, 0x01])
>>> print ' '.join('{:#04x}'.format(x) for x in exampleArray)
0xc0 0xff 0x01