私はPythonにはかなり新しいので、私は非常に単純なトラックツードアの割り当てをシミュレートしたいと思います。私は、実現可能なドアをトラックごとに配置したいと思っています。しかし、私が以下のシミュレーションを実行している場合は、実現可能なドアの一覧が表示されます(T1とT2の両方のドアが一緒に使えるようになります):私のソリューションはアイテムごとではなく1つのリストに印刷されるのはなぜですか?
['D1'、 'D2'、 'D1'、 'D2 」、 'D3']
しかし、私は持っていたい:
T1 = [ 'D1' 'D2']
T2 = [ 'D1' 'D2'、 'D3' ]
これは重要なことですが、この後、私はそのコストに応じて異なるドアを比較し、それに基づいて最良のd各トラック 't'のためのoor。あなたは内側のリストに別のリストを作成し、リストにそれを追加する必要が
# define dataset trucks and doors
trucks = ['T1', 'T2']
doors = ['D1', 'D2', 'D3', 'D4']
# define arrival time trucks
arr_time = {
'T1': 08.00,
'T2': 09.00,
}
# define when door 'd' is free
free_time_door = {
'D1': 07.00,
'D2': 08.00,
'D3': 09.00,
'D4': 10.00
}
# define when door 'd' is feasible for truck 't' to assign to
def feasible_doors(trucks):
feasible = []
for t in trucks:
for d in doors:
if arr_time[t] >= free_time_door[d]:
feasible.append(d)
return feasible
print (feasible_doors(trucks))
あなたの関数では、たった一つのリストfeasableが作成されているためです。なぜ魔法のように2つのリストにはならないのに驚いたのですか? – timgeb
あなたはただ一つのリスト( 'feasible')しかインスタンス化していないので、あなたは一つのリストしか取得しません。私はあなたが '' t in trucks 'ループの中で ''実現可能' 'を作り、作成された ''実現可能なものすべてを含むリストを返そうと思っています。 – NiziL
また、['datetime'](https://docs.python.org/2/library/datetime.html#module-datetime)、あるいはそれ以上の[' arrow'](http:// arrow .readthedocs.io/en/latest /)ライブラリを使用して、日付または時刻に操作を行います。 –