Python 将图像数组指定给字符串
我想将我的图像名称分配给另一个字符串。下面我已经描述了这个问题Python 将图像数组指定给字符串,python,Python,我想将我的图像名称分配给另一个字符串。下面我已经描述了这个问题 num=[10,20,30,40,50,60,.....500] for i in range(len(num)): img[i]=str(num[i])+'_image_plane_XX_YY.fits' 所以在这个循环之后它应该给我 img0='10_image_plane_XX_YY.fits' img1='20_image_plane_XX_YY.fits' .... img499='500_image_plane_
num=[10,20,30,40,50,60,.....500]
for i in range(len(num)):
img[i]=str(num[i])+'_image_plane_XX_YY.fits'
所以在这个循环之后它应该给我
img0='10_image_plane_XX_YY.fits'
img1='20_image_plane_XX_YY.fits'
....
img499='500_image_plane_XX_YY.fits'
这意味着,img0等于10个图像平面的图像名称,img1等于20个图像平面的图像名称,等等。因此,在进一步分析中,我只需要使用img0,img1,…作为我的相应图像。
但是,当我运行这个循环时,它会给我以下错误
TypeError: 'str' object does not support item assignment
请告诉我这方面的任何解决办法
提前谢谢
干杯
-病毒性的只有一个原因:你的
img
是一个字符串
此err msg意味着:字符串是不可变的,因此不能在适当的位置更改其字符
我认为你应该是一个列表或类似的东西。请检查您的代码。对于我认为您正在尝试做的事情,列表理解似乎是更自然的方法
num=[10,20,30,40,50,60] # I truncated your array for brevity
img = [str(i)+'_image_plane_XX_YY.fits' for i in num]
这将把img
构造成一个包含组合字符串的数组。例如:
>>> num=[10,20,30,40,50,60]
>>> img = [str(i)+'_image_plane_XX_YY.fits' for i in num]
>>> img[0]
'10_image_plane_XX_YY.fits'
>>> img[3]
'40_image_plane_XX_YY.fits'
问题出在
img[i]
中,因为您正试图将字符串分配给字符串索引,而错误告诉您,字符串不支持项分配
您可以改用dict:
img = {}
num=[10,20,30,40,50,60,.....500]
for i in range(len(num)):
img[i]=str(num[i])+'_image_plane_XX_YY.fits'
使img成为:
{ 0:'10_image_plane_XX_YY.fits',
1: '20_image_plane_XX_YY.fits',
....
499: '500_image_plane_XX_YY.fits'
}
您可以将图像名称称为:
>>> img[0]
'10_image_plane_XX_YY.fits'
>>> img[1]
'20_image_plane_XX_YY.fits'
但是,如果您不需要整数以外的任何东西作为键,您可能应该使用列表理解作为。谢谢。这正是我想要的。