0

次の問題が発生しました: Python で Ensight (CFD 計算を視覚化するためのプログラム) のスクリプトを作成しています。Ensight プログラムは、次のような時間値のリストを表示します。

print ensight.query(ensight.TIMEVALS)['timevalues']
[[0, 0.0], [1, 9.99e-07], [2, 1.99e-06], [3, 0.0003],etc.]

すべてのリストの最初の値はタイムステップで、2 番目の値はこのタイムステップでの実際の時間です。今、私は何とかタイムステップ '2' を求めて、リストの対応する 2 番目の値を知りたいと思っています。したがって、タイムステップのインデックスを見つけることができれば、対応する時間値を簡単に取得できます。

編集\\ 次のように解決しました:

time_values = ensight.query(ensight.TIMEVALS)['timevalues']
for start,sublist in enumerate(time_values):
    if step_start in sublist:
        index_begin = start
for end,sublist in enumerate(time_values):
    if step_stop in sublist:
        index_end = end
4

3 に答える 3

1

n を必要なタイムステップ値に設定します

>>> n=2
>>> print [list[1] for list in ensight.query(ensight.TIMEVALS)['timevalues'] if list[0]=n ]

これはあなたの場合にも拡張できます

>>> from=2
>>> to=100
>>> print [list[1] for list in ensight.query(ensight.TIMEVALS)['timevalues'] if (list[0]>from && list[0]<to)  ]
于 2013-10-31T07:13:22.013 に答える
1
>>> l = ensight.query(ensight.TIMEVALS)['timevalues']

>>> print l
[[0, 0.0], [1, 9.99e-07], [2, 1.99e-06], [3, 0.0003]]

>>> _d = {int(ele[0]): ele[1] for ele in l}

>>> print _d[2]
1.99e-o6
于 2013-10-31T07:13:39.510 に答える
1

多分これはあなたが望むものですか?

print ensight.query(ensight.TIMEVALS)['timevalues'][1][1]

メイン リストに含まれる 2 番目のリストの 2 番目の値であるため、9.99e-07 が出力されます。

開き括弧が 3 つと閉じ括弧が 2 つしかない理由が不思議です。これはタイプミスですか?

[[ [..].. ]

myList = [[0, 0.0], [1, 9.99e-07], [2, 1.99e-06], [3, 0.0003],etc.] のようなリストがある場合、最初のネストされたリストにアクセスできますmyList[0] 結果は [0, 0.0] そのリストの 2 番目の値にアクセスするには、myList[0][1] を使用できます

于 2013-10-31T07:06:10.340 に答える