目录
python list初始化
a=[[0,1]]*3
a[0][0]=2#这个有问题,所有的都会赋值
a=[[0]*2]*5
a[0][0]=2#这个也有问题,所有的都会赋值
#下面两种都ok:
# a=[[0] * 2 for i in range(5)]
a=[[0,0.01] for i in range(5)]
a[0][0]=2
a[2][0]=3
print(a)
总结:单维的*5是可以的
多维的*号只是引用
需要用for循环才能产生数据。
list相加
import numpy as np
if __name__ == '__main__':
data1=[[1,2],[1,3,3]]
data2=[[1,2],[1,3,3]]
data=data1+data2
print(data)
结果:
[[1, 2], [1, 3, 3], [1, 2], [1, 3, 3]]
list相加,是内容拼接。
list转numpy
import numpy as np
if __name__ == '__main__':
data=[[1,2],[1,3,3]]
data=np.array(data)
print(data)
data=[[1,2],[1,3]]
data=np.array(data)
print(data)
结果:
[list([1, 2]) list([1, 3, 3])]
[[1 2]
[1 3]]
如果list内容是对齐的,会全部转为numpy。
如果list中数据维度不对齐,则不会转为numpy。
list替换内容
import numpy as np
if __name__ == '__main__':
data1=[[1,2],[1,3,3],0,0]
data1[2:4]=[1,2]
data=data1
print(data)
coco数据集字典转list:
cls_names=[]
for i in range(len(names)):
cls_names.append(names[i])
hyp['names'] = cls_names