#Input:
chararr = np.chararray((3, 5))
chararr[:] = 'a'
chararr
#Output:
chararray([[b'a', b'a', b'a', b'a', b'a'],
[b'a', b'a', b'a', b'a', b'a'],
[b'a', b'a', b'a', b'a', b'a']],
dtype='|S1')我的问题是“b”是从哪里来的..。我是从jupyter笔记本和PyCharm上得到这个的
发布于 2016-07-27 20:28:14
在Python3中,默认的字符串类型是unicode。使用b标志显示字节字符串。注意到<S1的dtype吗?这意味着字节,<U1用于unicode ( Py2和Py3都是如此)。
chararray有一个unicode参数。
In [161]: A=np.chararray((3,5),unicode=True)
In [162]: A[:]='a'
In [163]: A
Out[163]:
chararray([['a', 'a', 'a', 'a', 'a'],
['a', 'a', 'a', 'a', 'a'],
['a', 'a', 'a', 'a', 'a']],
dtype='<U1')如果我在Py2上也这么做,我就会看到u'a'。
发布于 2016-07-27 20:16:40
字符串前面的b显示它是一个字节文本。它们是字节类型的实例,而不是str类型的实例,并且可能只包含ASCII字符。
str文本是Unicode字符的序列(UTF-16或UTF-32)。
byte文本是八元序列(ASCII)。
别担心,它们不是实际字符串的一部分。你看,b不在引号里。
有关详细信息,请访问python的官方网站。
https://stackoverflow.com/questions/38621820
复制相似问题