この記事では、指定された期間内でランダムで非繰り返しの時点を取得するための Python の実装コードを紹介します
以下は私のコードです:
#2016-12-10 7:06:29 codegay import random st = "07:30:00" et = "09:30:33" def time2seconds(t): h,m,s = t.strip().split(":") return int(h) * 3600 + int(m) * 60 + int(s) def seconds2time(sec): m,s = pmod(sec,60) h,m = pmod(m,60) return "%02d:%02d:%02d" % (h,m,s) sts = time2seconds(st) #sts==27000 ets = time2seconds(et) #ets==34233 rt = random.sample(range(sts,ets),10) #rt == [28931, 29977, 33207, 33082, 31174, 30200, 27458, 27434, 33367, 30450] rt.sort() #对时间从小到大排序 for r in rt: print(seconds2time(r)) """ 输出: 07:43:12 07:54:31 08:08:33 08:27:46 08:46:53 08:48:17 08:55:20 08:59:16 09:10:23 09:15:58 """
コードから、時間を秒に変換するというアイデアであることがわかります。次に、 range を使用して 07:30 から 09:30 までの時間の秒を生成し、次を使用します。ランダム サンプルはそこから N 秒を取得し、最終的にその秒を必要な時間形式に変換します。
>>> "09:30:00" > "9:30:00" False >>> "09:30:00" == "9:30:00" False
文字列による判定は上記のような場合があると思いますが、数値化して計算した方が確実な気がします。
シナリオ 3: 秒に変換された時刻は、1970 年 1 月 1 日のプログラミング言語組み込みのタイムスタンプ関数を使用して変換できます。
以上が指定された期間内でランダムな非反復時点を取得するための Python 実装コードの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。