我在jupyter笔记本上使用python 3.6。
我编写了这段代码以可视化一些数据。
from nilearn import plotting
DMN = plotting.plot_glass_brain("/Users/projets/rmap_seeds/average_rmap_DMN.nii.gz",
draw_cross = True, colorbar=True)
plt.show()
我想可视化的文件很多
我想做一个for循环,所以我不必手动编写它们。我只是在这里举了两个例子,但实际上我有数百个。
我尝试过这个:
image = {'average_rmap_DMN', 'average_rmap_CER'}
for i in image :
image(i) = plotting.plot_glass_brain("/Users/projets/rmap_seeds/",
(image{i}), ".nii.gz", draw_cross = True, colorbar=True, threshold=0.7)
我收到此错误:
SyntaxError: invalid syntax
谢谢!
答案 0 :(得分:0)
Python使用方括号而不是花括号来建立索引,因此您应该执行image[i]
来消除语法错误。
但是,在python中遍历列表会返回列表项而不是索引。
用i
编制索引将不起作用,但是您可以直接使用它:
for img in image:
do_something(img)
或者使用列表推导
[do_something(img) for img in image]
如果您希望继续对其进行修改,则可以将列表理解的结果分配给一个新变量,这样您的代码就会变成
image = {'average_rmap_DMN', 'average_rmap_CER'}
res = [plotting.plot_glass_brain("/Users/projets/rmap_seeds/",
img, ".nii.gz", draw_cross = True, colorbar=True, threshold=0.7)
for img in image]
最后,根据您的代码判断,我建议您阅读一些入门python教程。像this这样的面向matlab用户的东西可能是一个不错的起点,或者this one是一般信息。
答案 1 :(得分:0)
在您的示例中,您有两个表达式image(i)
和image{i}
。
image(i)
这是一个问题,因为字符串不可调用(您不能传递参数,也不能使它们像函数一样工作)。这不是有效的操作,因此在这种情况下将引发错误。 (Python分析器认为您正在尝试分配给函数调用。)
image{i}
这是语法错误。 {i}
是一个集合文字,因此您的表达式就像拥有x 1
,这在Python中是无效的语法。如果您要查找索引,则为image[i]
。
但是接着是一个问题:images
应该是集合还是字典?因为如果它是字典,那么您正在遍历键,因此应该为images[i]
。但是,如果它是一个集合(似乎是您正在使用的集合),则会出现更多问题。
按字符串索引问题,当您说for string in strings:
时,string
是容器中的字符串,而不是它的整数索引。
所以看来您的代码中存在一些更严重的结构性问题。您应该考虑所需的数据结构,并研究内置容器list
,dict
,set
,tuple
等的方法。