python - 在python中对每一行进行编号

标签 python python-3.x

在我接下来的脚本中

atind=[5,37,43,55,75,85,104,127,141,147,168,182,197,203,213,235,245,269,288,307,331,352,372,393,407,417,439,449,456,475,485,502,516,536,552,573,580,587,597,621,631,653,677,691,705,725,747,758,768,783,795,805,822,846,860,870,877,884]
for f in feat.describe_features(ds[0]):
    [a,b]=f['resseqs']
    print("d: DISTANCE ATOMS=%d,%d"%(atind[a-1], atind[b-1]))

我得到了这样的输出

d: DISTANCE ATOMS=85,141
d: DISTANCE ATOMS=85,147
d: DISTANCE ATOMS=85,168
d: DISTANCE ATOMS=85,182
d: DISTANCE ATOMS=85,197
d: DISTANCE ATOMS=85,203
d: DISTANCE ATOMS=85,213

.....有超过 1000 行这样的行我想要的是一种方法,这样我就可以编辑我的脚本来对输出进行编号

d1: DISTANCE ATOMS=85,141
d2: DISTANCE ATOMS=85,147
d3: DISTANCE ATOMS=85,168
d4: DISTANCE ATOMS=85,182
d5: DISTANCE ATOMS=85,197
d6: DISTANCE ATOMS=85,203
d7: DISTANCE ATOMS=85,213

...直到最后一个。

任何很酷的技巧。我可以在 bash 中完成,但工作量太大了。我想我缺少非常基本的 Python 方法。任何帮助将不胜感激。

我想它应该是 d$i 之后的一个变量,也许不是?

最佳答案

使用 enumerate 为您的迭代器生成索引值对:

for i, f in enumerate(feat.describe_features(ds[0]), start=1):
    [a,b]=f['resseqs']
    print("d%d: DISTANCE ATOMS=%d,%d"%(i, atind[a-1], atind[b-1]))

如果使用 Python 3.6+,还请注意您可以使用 f-string 以获得更好的格式:

for i, f in enumerate(feat.describe_features(ds[0]), start=1):
    a, b = f['resseqs']
    print(f"d{i}: DISTANCE ATOMS={atind[a - 1]},{atind[b - 1]}")

关于python - 在python中对每一行进行编号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51001018/

相关文章:

python - 如何去掉[]符号

python - Unpickling 中流(python)

python - Django 模板--基于当前 URL 路径的条件

python - 如何制作带参数的命令行程序?

python - Pandas:使用变量从变量名称创建具有一行和一列名称的数据框

algorithm - 内存类内部递归函数的深度

python - 有没有一个Python函数可以丢弃或忽略负值?

python - 直接在图表上可视化 matplotlib 直方图 bin 计数

python - 安全错误: Failed to establish secure connection to 'EOF occurred in violation of protocol (_ssl.c:841)'

python - 在python中导入其他文件和全局变量