私は基本的に、fortranモデルの出力を持つtxtファイルを持っています。出力は少し次のようになります。リスト内のリストのインデックスを見つける方法
Title:Model
Temp(K) Ionic str Rho Phi H2O Ice ...
273.15 4 1.003 1.21 1000 0.00
Species Ini Conc Final Conc Act ....
H 0.0 0.12032 0.59
NH4 3.0 3.00 0.43
Cl 1.0 1.00 0.47
...
Title:Model
Temp(K) Ionic str Rho Phi H2O Ice ...
273.15 4 1.003 1.21 1000 0.00
Species Ini Conc Final Conc Act ....
H 0.0 0.12032 0.59
NH4 3.0 3.00 0.43
Cl 1.0 1.00 0.47
...
各ステップは、その最終的に、私は3000の+の手順でtxtファイルを持っている上記のような別のセットを追加します。
私は各段階ですべての気温を思い出したいと思います。私は 'Temp(K)'が現れるすべてのポイントをインデックスするために何かを書いて、そのインデックスに1を加えて実際の温度の位置を取得しようとしています。
私のコードは次のようになります。
import numpy as np
import matplotlib.pyplot as plt
main=[]
main2=[]
count=0
with open('FrOut.txt', 'r') as f:
data=f.readlines()
for line in data:
main.append(line.split(','))
for value in main:
for x in value:
main2.append(x.split())
for value in main2:
for x in value:
if x=='Temp(K)':count+=1
だから、明らかに、これが最もエレガントな方法はありませんが、私は、Pythonとの深い最後には非常に多くのです。だからリストの最初の値== 'Temp(K)'なら、リスト内のリストのインデックスを(main2)見つける方法は?
Nb。私はこの後にデータをプロットするためにnpとmatplotを使用しています。
テキストを2回ループして、2番目のリストの索引ルックアップを考慮しています。代わりに、単に 'enumerate()'を使って、一度だけループすることができます –
第2の理解では、私は線のリスト全体ではなく、*索引*をループしています。私は確かにそれを単一の理解で行うことができました。この場合、分かりやすくするために分割します。 –
私が言ったように、インデックスルックアップ。 'enumerate()'は、そのまま 'enumerate()'を利用する2つのリスト内包よりもはっきりしています。 –