我很困惑为什么下面的代码答案是:
import numpy as np
dt=[('name','S16'),('grad',int),('cpg',float)]
val=[("Ahmadmm",2008,12),('ali',2010,12.2),('mitra',505,15.15)]
arr=np.array(val,dtype=dt)
print(arr)
output: [(b'Ahmadmm', 2008, 12. ) (b'ali', 2010, 12.2 ) (b'mitra', 505, 15.15)]
为什么每个字符串前面都有一个"b"?
我认为这篇文章回答了你的问题:';b';字符串文字前面的字符做什么?。"b"字符基本上表示一个字节文字。
正如NPE在这个问题中所说,引用Python 2.x文档:
Python 2中会忽略前缀"b"或"b";它指示该文本应该成为Python 3中的字节文本(例如,当代码用2to3自动转换时(。"u"或"b"前缀后面可以跟一个"r"前缀。
Python3文档说明:
字节文字总是以"b"或"b"为前缀;它们生成字节类型的实例,而不是str类型的实例。它们只能包含ASCII字符;数值为128或更大的字节必须用转义符表示。