2

次のような時間間隔のリストがあるとします。

a = [datetime.time(0,0),datetime.time(8,0)]

今、私は以下のようなリストに間隔のラックを持っています。

b = [[datetime.time(0,0),datetime.time(8,0)], [datetime.time(0,0),datetime.time(10,0)], [datetime.time(0,0),datetime.time(23,59,59)], [datetime.time(15,0),datetime.time(9,0)], [datetime.time(9,0),datetime.time(15,0)]]

区間aを含む区間でリストbをフィルタリングする必要があります。例のように結果はになります。

b = [[datetime.time(0,0),datetime.time(8,0)], [datetime.time(0,0),datetime.time(10,0)], [datetime.time(0,0),datetime.time(23,59,59)], [datetime.time(15,0),datetime.time(9,0)]]

注:終了時刻を00から23:59:59に変更しましたが、毎日00:00から08:00の間隔が15:00から09:00の間隔に含まれていることを理解する必要があるため、ケースは永続的です。

ヒント:15:00〜09:00を00:00〜09:00と15:00〜23:59:59の2つの間隔に分割しました

4

1 に答える 1

2

コードにエラーがあります(の使用datetime/datetime.time)。

bこのコードは、以下と重複しないすべてのものから除外されaます。

b = [x for x in b if a[0] < x[1] and x[0] < a[1]]
于 2012-09-12T14:43:50.277 に答える