源代码
result=np.empty(3,dtype=str)
for i in range(3):
result[i]='{:d}({:.2f})'.format(52,0.496853271)
print(result)
理想输出为['52(0.50)' '52(0.50)' '52(0.50)']
输出结果为['5' '5' '5' ]
ChatGPT给出的解释是“这是因为在设置dtype=str
时,result
数组中的每个元素都被初始化为空字符串''
。当你将字符串'52(0.49...)'
赋值给result[0]
时,只有第一个字符'5'
被保存在result[0]
中,而其余字符被截断了”
改进方法有两种:
一是在创建数组时指定宽度
result=np.empty(3,dtype='U10')
二是将数据类型改为object,
这样每个元素都可以保存任意类型的数据
result=np.empty(3,dtype=object)