Python 如何在b'';

Python 如何在b'';,python,Python,我有如下数组: x = [b'ab ab bc' b'rd rd kh'] 出于某种原因,我不知道为什么第一个字节编码的字符串(b'ab-bc')和第二个(b'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']: 允许多个相邻的字符串或字节文字(由

我有如下数组:

x = [b'ab ab bc' b'rd rd kh']
出于某种原因,我不知道为什么第一个字节编码的字符串
(b'ab-bc')
和第二个
(b'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']

:

允许多个相邻的字符串或字节文字(由空格分隔),可能使用不同的引用约定,其含义与它们的串联相同。因此,
“hello”‘world’
相当于
“helloworld”

所以源代码如下:

 x = [b'ab ab bc' b'rd rd kh']
完全等同于(编译为相同的字节码):

要拆分它们,您需要实际添加逗号,如图所示:

 x = [b'ab ab bc', b'rd rd kh']
               # ^ added comma
使用
decode
ing,完全按照您所显示的方式执行。要跳过逗号,就必须将整个内容变成字符串并编写自定义解析代码,这比添加逗号要痛苦得多。

:

允许多个相邻的字符串或字节文字(由空格分隔),可能使用不同的引用约定,其含义与它们的串联相同。因此,
“hello”‘world’
相当于
“helloworld”

所以源代码如下:

 x = [b'ab ab bc' b'rd rd kh']
完全等同于(编译为相同的字节码):

要拆分它们,您需要实际添加逗号,如图所示:

 x = [b'ab ab bc', b'rd rd kh']
               # ^ added comma

使用
decode
ing,完全按照您所显示的方式执行。如果不将整个内容变成字符串并编写自定义解析代码,就无法跳过逗号,这比添加逗号要痛苦得多。

该列表中没有逗号的原因是pythons隐式字符串构造。实际上,x是一个列表,其中包含一个单字节字符串
b'ab-bcrd-kh'


拆分不可能,正如您所看到的,您可以在bcrd之间拆分它,但我认为这不是您想要做的

列表中没有逗号的原因是因为pythons隐式字符串构造。实际上,x是一个列表,其中包含一个单字节字符串
b'ab-bcrd-kh'



拆分不可能,正如您所看到的,您可以在bcrd之间拆分,但我认为这不是您想要做的

您的示例在我看来很好。什么不起作用?我觉得你的例子不错。什么不起作用?你的措辞好多了:有没有一种自动使用逗号并拆分它们的方法?我有很多不同字符串的列表,我不想手动拆分它们。@FaezeBr:没有任何解决方案比正确地修复代码更难(正如我在上一段中提到的)。如果不编写新语言或完整的预处理器(远远超出StackOverflow答案的范围),就不能选择退出Python语法。同样,要100%清楚:当这段代码开始运行时,编译器已经扔掉了关于独立文本的所有信息,因此它完全等同于只编写了一个;您不能拆分它们,因为没有关于它们以前被拆分位置的剩余信息。@ShadowRanger,我从使用tfrecord(tensorflow)获得了这些数组。我解释得更详细了。我没有得到任何关于如何解决这个问题的回应,这就是为什么我认为也许我需要自己拆分它们。@FaezeBr:我真的看不出它是如何或是否生成
[b'ab ab bc'b'rd kh']
,就像在所有情况下一样,我们没有复制它的方法。我猜您正在接收一个带有自定义
\uu repr\uu
的数据类型,该类型省略了逗号,但您声称您知道长度为1,这与此相反。事实上,没有人可以帮助你,因为没有人可以复制你的问题。你用了更好的措词:有没有一种自动的方法在那里用逗号并拆分它们?我有很多不同字符串的列表,我不想手动拆分它们。@FaezeBr:没有任何解决方案比正确地修复代码更难(正如我在上一段中提到的)。如果不编写新语言或完整的预处理器(远远超出StackOverflow答案的范围),就不能选择退出Python语法。同样,要100%清楚:当这段代码开始运行时,编译器已经扔掉了关于独立文本的所有信息,因此它完全等同于只编写了一个;您不能拆分它们,因为没有关于它们以前被拆分位置的剩余信息。@ShadowRanger,我从使用tfrecord(tensorflow)获得了这些数组。我解释得更详细了。我没有得到任何关于如何解决这个问题的回应,这就是为什么我认为也许我需要自己拆分它们。@FaezeBr:我真的看不出它是如何或是否生成
[b'ab ab bc'b'rd kh']
,就像在所有情况下一样,我们没有复制它的方法。我猜您正在接收一个带有自定义
\uu repr\uu
的数据类型,该类型省略了逗号,但您声称您知道长度为1,这与此相反。事实上,没有人可以帮助你,因为没有人可以复制你的问题。你的意思是没有简单的方法可以使用一些代码来分割它们吗?不,没有简单的方法。如果您确切知道输入是什么,那么是的,这很简单,但我假设这只是示例输入,它会发生不可预测的变化。您不应该以这种方式存储数组/列表,逗号的存在和分隔元素是有原因的,我从使用tfrecord(tensorflow)中获得了这些数组。我解释得更详细了。我没有得到任何关于如何解决这个问题的回答,这就是为什么我想我需要自己把它们分开。看看张量流柱,它看起来像是同一个问题,你的弦集中在一起,一起读出。如果您知道它们是如何被读入的,您可以像使用string.split('string t