python - 同时更改两个 Python 列表的索引
问题描述
我正在使用 python 3,并且有两个由它们的索引相关的列表,但有不同的值。
scans = [400,405]
points = [101,201]
因此,例如,扫描 400 有 101 个点,而扫描 405 有 201 个点。
我正在尝试为每个扫描构建一组文件名(即字符串),如下所示:
2idd_flyXMAP_0400_0.nc
2idd_flyXMAP_0400_1.nc
2idd_flyXMAP_0400_2.nc
...
2idd_flyXMAP_0400_98.nc
2idd_flyXMAP_0400_99.nc
2idd_flyXMAP_0400_100.nc
和
2idd_flyXMAP_0405_0.nc
2idd_flyXMAP_0405_1.nc
2idd_flyXMAP_0405_2.nc
...
2idd_flyXMAP_0405_199.nc
2idd_flyXMAP_0405_200.nc
请注意,扫描 405 将有更多文件与之关联。我接近了下面的代码,但是嵌套 for 循环的性质让我迭代了太多次,并生成了不需要的字符串(即一组包含 200 个点的扫描 400 和一组包含 100 个点的扫描 405,两者是不必要的)。
scans = [400,405]
points = [101,201]
for scan in scans:
pre_f = '2idd_flyXMAP_0' + str(scan) + '_'
for point in points:
endfile = list(range(point)) #this seems to be where the problem is; i generate four sets of lists here because i have two elements in two lists
for point in endfile:
f = pre_f + str(point) + '.nc'
print(f)
我可能设置不准确,但在这种情况下我想做的是在第一个for 循环完成后更改scan
for 循环和第一个point
for 循环的索引。point
我不确定如何做到这一点,但我认为这应该可以解决我的问题。
当然,我愿意接受单独的、更简单的方法,并提前感谢您的帮助!
解决方案
你也可以使用枚举
for index, scan in enumerate(scans)
for point in range(points[index])
output = "{i}: {s}-{p}".format(i=index, s=scan, p=point)
print(output)
推荐阅读
- ios - NSInvalidArgumentException Json 中的无效类型写入目标 c
- postgresql - 如何在棱镜(psql)中存储对象数组
- python - 将姿势关键点从 h36m 转换为 coco
- python - 如何计算编号。从当前周到给定周的周数?
- doxygen - 如何让 md 文件只出现在主页上 [doxygen 1.8.17]
- c# - 如何在上午/下午 24 小时之间设置日期
- reactjs - 刷新后材质 UI 图标不呈现
- c# - 如何在 NavigationManager.NavigateTo 上使用 Blazor 服务器端处理 cookie 身份验证
- angular - 使用 MatSort 对表格中的项目进行角度排序
- tsql - SQL Server:如何从每个组中返回一个记录