Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么Python会跳过字符串连接语句中的第一个元素?_Python_String_Join - Fatal编程技术网

为什么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