特に、一定の値に達したときに反復を停止するという点で問題があります。この値に達すると、特定のタスク(後述)を実行して、リストの次の要素に移動します。Pythonで特定のインデックスまでのリストに値を追加する
これは私が達成したいことです。私は何をしたいのですが、各low_lst
と各high_lst
を追跡することである
[(1, 'x', 'NA'),
(2, 'x', 'low'),
(3, 'x', 'NA'),
(4, 'x', 'NA'),
(5, 'x', 'NA'),
(6, 'x', 'high'),
(7, 'x', 'NA'),
(8, 'x', 'NA'),
(9, 'x', 'NA'),
(10, 'x', 'NA'),
(11, 'x', 'low'),
(12, 'x', 'NA'),
(13, 'x', 'NA'),
(14, 'x', 'NA'),
(15, 'x', 'high'),
(16, 'x', 'NA'),
(17, 'x', 'NA'),
(18, 'x', 'NA'),
(19, 'x', 'NA'),
(20, 'x', 'NA'),
(21, 'x', 'low'),
(22, 'x', 'NA'),
(23, 'x', 'NA'),
(24, 'x', 'NA'),
(25, 'x', 'high'),
(26, 'x', 'NA')]
:私はこのようになりますリストlst
を持っています。例えば
タプルの第2のインデックス がlow
としてマークされ、その要素以下high
としてマークされていない他のすべての要素は、同様にリストに追加される場合、要素はlow_lst
に追加されるであろう。最初のケースでは、[2,3,4,5]
となります。 [6,7,8,9,10]
:それはそうhigh.
としてマークされているため
6
は、6
とhigh_lst
に追加されます以下を含むすべての要素を含まれません。
最終的な出力は次のようになります。ここに私はこれまで何をやったかだ
low_lst = [[2,3,4,5],[11,12,13,14], [21,22,23,24]]
high_lst = [[6,7,8,9,10],[15,16,17,18,19,20], [25,26]]
:
vals_list_low = []
vals_list_high = []
i = -1
for x, y, z in lst:
if z == "low":
vals_list_min.append(lst[:i])
if z == "high":
vals_list_max.append(lst[:i])
i += 1
私は特定のインデックスにすべての要素を追加しようとしますが、わからないよいますどうやって。
を試してみてください、 2,3,4?次の2つは11で始まり、次に21で始まります。 ハイリストと同様の問題がありますが、最初は5から10になると思います。 モジュラスを1つまたは2つ使用するとアルゴリズムを作成できますが、1がスキップされたために最初のエントリが奇妙に見えます。 1はスキップされるはずですか? –
@FruckubusCruntは技術的にはそうですが、私は 'low'の開始値を 'low'としてマークされている行にすることを検討していますので、スキップすることになっています。 – djennacs
ああ、申し訳ありません、何が起こっているのか分かりました。私の間違い。 –