我想将我的图片名称分配给另一个字符串。下面我描述了这个问题。
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_image_plane_XX_YY.fits的图像名称,img1等于20_image_plane_XX_YY.fits等的图像名称。所以我只需要使用img0,img1,..进行进一步分析我的相应图像。 但是,当我运行此循环时,它会给我以下错误
TypeError: 'str' object does not support item assignment
请告诉我任何解决方法。
提前致谢!
干杯,
-Viral
答案 0 :(得分:2)
对于我认为你想要做的事情,列表理解似乎是更自然的方法。
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'
答案 1 :(得分:0)
这只有一个原因:你的img
是一个字符串。
这个错误信息意味着:字符串是不可变的,所以你不能就地改变它们的字符。
我认为你img
应该是一个列表或类似的东西。请检查您的代码。
答案 2 :(得分:0)
问题发生在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'
但是,如果您不需要除整数之外的其他任何内容作为键,那么您应该将列表理解用作suggested by rchang。