python - 如何通过输入更改自动化单行代码?
问题描述
我创建了一个名为“j”的变量,它有一些值,我希望我的代码一次选择一个值并执行。我尝试编写代码,但它不起作用。我正在分享我的代码,请查看何时可以改进。
j = ['0', '1', '3', '4', '6', '7', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '30', '31', '32', '33', '34', '35', '36', '37', '38', '39', '40', '41', '42', '43', '44', '45', '46', '47', '48', '49', '50', '51', '52', '53', '54', '55', '56', '57', '58', '59', '60', '61', '62', '63', '64', '65', '66', '67']
for i in j:
labels('i') = mne.read_labels_from_annot('sub-CC721377_T1w', parc='aparc', subjects_dir=subjects_dir)['i']
done
解决方案
根据 MNE文档,该函数read_labels_from_annot
返回标签列表。
...)[0]
因此,您应该只捕获整个列表,而不是在最后对结果进行索引:
labels = mne.read_labels_from_annot(...)
这将捕获标签列表,而不是单个标签,这将具有“在末尾索引“[0]”从 0 - 67 的效果。
您询问将所有结果一起添加到label_all
变量中。你没有具体说明(我对 MNE 包一无所知),所以不清楚:标签是否重复?每个输入文件中是否可能出现“lab123”?如果是这样,应该label_all
存储相同值的多个副本,还是只存储唯一的标签名称?
我认为这样的事情是你所追求的:
import mne
def get_labels_for_subject(sub, *, hemi='both', parc='aparc', **kwargs):
"""Get MNE labels for a given subject. **kwargs allows passing named
parameters like subjects_dir, regexp, and others that default to None."""
labels = mne.read_labels_from_annot(sub, hemi=hemi, parc=parc, **kwargs)
return labels
# List of all the subjects
subjects = [
'sub-CC721377_T1w',
'sub-next???',
]
label_all = []
for s in subjects:
label_all.extend(get_labels_for_subject(s, subjects_dir='.'))
print("Got labels:", label_all)
推荐阅读
- sql - 删除sql中Char数据类型两列之间的重复组合
- python - 使用 python-opencv 通过俯仰、滚动、偏航旋转图像
- javascript - 将 JSON 文件中的对象数组推送到 Javascript 数组
- r - R中的Nargin函数(函数输入的数量)
- r - 如果单元格为空,则改变数据框
- php - 使用 PHP 将 JSON 数组转换为 CSV
- javascript - 基于因子随机数生成器的 Javascript 概率选择器
- c# - 使用泛型的对象池
- javascript - 运行已编译的 Javascript 代码时,TypeScript 文件中出现“SyntaxError:无法在模块外使用导入语句”错误
- reactjs - 在 TypeScript 中将 hashmap 类型正确作为函数参数