前提・実現したいこと
for文で得た結果をリストに格納する方法を教えていただきたいです。
初心者質問のため申し訳ありませんが、よろしくお願いいたします。
該当のソースコード
Python
1def data(): 2 result =[] 3 for route in route_nodes.keys(): 4 if x[route].X > 0.01: 5 totalcost = route_cost[route]*x[route].X 6 print(totalcost) 7 result.append(totalcost) 8 return result
修正前コードは以下のものです。
Python
1for route in route_nodes.keys(): 2 if x[route].X > 0.01: 3 totalcost = route_cost[route]*x[route].X 4 print(route, x[route].X, route_nodes[route]) 5 print(f"所要時間:{totalcost}")
上記のコードでどのような問題があるのでしょう?
困っていることを具体的に書いてください。
エラーが出ているのであれば、そのエラーをすべて提示ください。
結果をresultの中に新しく追加したいのですが、追加することができていない状況です。
実行をするとエラーもなく終了し、結果として追加されていない状況だったため、解決方法がわからず質問させていただいた次第です。
xはどこから出てきたのでしょう。
xはそれより以前のコードで使用しているものです。
print(totalcost)
としているところで、目的のものがちゃんと表示されているのでしょうか?
print(totalcost) では求めているものが表示されていません。
上に乗せたコードにする前に下記のコード
for route in route_nodes.keys():
if x[route].X > 0.01:
totalcost = route_cost[route]*x[route].X
print(route, x[route].X, route_nodes[route])
print(totalcost)
で試したところ表示されていました。
上に同じものを掲載させていただきます。
再現可能な最小限のコードを提示してください。
表示されないということは、そもそもリストに入れるべき値が取得できていないと思われます。
処理部分の関数化もしているのでしょうか? であれば、それが原因の可能性もあり、部分的なコードをみただけでは、これ以上はわかりそうにありません。
質問についていえば、必要なデータが取得できているのであれば、そのコードでリストに入れて返すことはできそうです。
ただ、関数名の「data」というのは他のものと被りそうなので、避けたほうがいいでしょう。
t_obara様
途中の計算過程に商用ソフトを使っているため、再現が不可能かと思われます。
時間を割いて下さり、ありがとうございました。
TakaiY様
アドバイスいただきありがとうございます。
部分的なコードだったのにもかかわらず、原因を考えてくださりありがとうございます。
dataという関数名は避け、ほかの方法でアプローチしてみようと思います。
ありがとうございました。