我有如下数组:
x = [b'ab ab bc' b'rd rd kh']
出于某些原因,我不知道为什么第一个字节编码的字符串(b'ab ab bc')
与第二个字节编码的字符串(b'rd rd kh')
之间没有逗号。我不知道如何将它们拆分成类似如下的列表:
x = [b'ab ab bc', b'rd rd kh']
# decode
res = [i.decode('utf-8') for i in x]
我希望结果像:res = ['ab ab bc', 'rd rd kh']
Adjacent bytes
literals in the source code are automatically concatenated:
允许多个相邻的字符串或字节文字(用空格分隔),可能使用不同的引用约定,并且它们的含义与它们的串联相同。因此,
bytes
等于"hello" 'world'
。
源代码如下:
"helloworld"
是完全等效于(编译为相同的字节码):
x = [b'ab ab bc' b'rd rd kh']
要拆分它们,您需要按照显示的内容实际添加逗号:
x = [b'ab ab bcrd rd kh']
x = [b'ab ab bc', b'rd rd kh']
# ^ added comma
的处理完全如您所显示。没有跳过整个逗号而不是整个字符串并编写自定义解析代码的方法,这比仅添加逗号要痛苦得多。
该列表中没有逗号的原因是因为python隐式字符串构造。 x实际上是一个列表,其中包含一个单字节字符串decode
。
拆分是不可能的,如您所见,您可以在bcrd之间拆分它,但我认为这不是您想要做的事情