質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
DateTime

多くのプログラミング言語におけるDateTimeオブジェクトは、日付と時間に関する演算と出力を行います。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

2回答

955閲覧

Python Datetimeのインクリメント

mukku

総合スコア10

DateTime

多くのプログラミング言語におけるDateTimeオブジェクトは、日付と時間に関する演算と出力を行います。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2019/05/30 04:38

編集2019/05/30 04:41

pythonのdatetimeによるインクリメントについて質問です。
ある値をプラスしていき、全てのデータを一つ一つ取得したいと思っています。

ただ、以下のコードではインクリメントされません。
ご指摘、お願いいたします。

samplerate = 500などの数字が入っている変数です。

Python

1time = [] 2dt1 = datetime.datetime(2019, 3, 2, 12, 00, 00, 1) 3for x in range(samplerate): 4 dt2 = dt1 + datetime.timedelta(milliseconds=1) 5 time.append(dt2)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hayataka2049

2019/05/30 04:39 編集

投稿ミスかコードが載っていないので、編集して修正しておいてください。コードは ``` ``` のように囲うといいです(コード部分を選択して<code>ボタンで同様のものを挿入できます)。
mukku

2019/05/30 04:40

ご指摘ありがとうございます。修正いたしました。
guest

回答2

0

ベストアンサー

dt1に対して代入していないので、こちらは中身が変化しません。毎回同じdt1 + datetime.timedelta(milliseconds=1)を繰り返すので、結果のリストはすべて同じ中身になります。

インクリメントでやるとしたらこんな感じです。

python

1import datetime 2 3time = [] 4dt1 = datetime.datetime(2019, 3, 2, 12, 00, 00, 1) 5dt2 = dt1 6samplerate = 10 7for x in range(samplerate): 8 dt2 += datetime.timedelta(milliseconds=1) # dt2 = dt2 + datetime.timedelta(milliseconds=1)も可 9 time.append(dt2) 10print(time) 11""" => 12# 整形済み 13[datetime.datetime(2019, 3, 2, 12, 0, 0, 1001), 14 datetime.datetime(2019, 3, 2, 12, 0, 0, 2001), 15 datetime.datetime(2019, 3, 2, 12, 0, 0, 3001), 16 datetime.datetime(2019, 3, 2, 12, 0, 0, 4001), 17 datetime.datetime(2019, 3, 2, 12, 0, 0, 5001), 18 datetime.datetime(2019, 3, 2, 12, 0, 0, 6001), 19 datetime.datetime(2019, 3, 2, 12, 0, 0, 7001), 20 datetime.datetime(2019, 3, 2, 12, 0, 0, 8001), 21 datetime.datetime(2019, 3, 2, 12, 0, 0, 9001), 22 datetime.datetime(2019, 3, 2, 12, 0, 0, 10001)] 23"""

投稿2019/05/30 04:47

hayataka2049

総合スコア30933

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mukku

2019/05/30 05:03

ありがとうございます。 dt1に代入されてなければ変化しませんね・・ありがとうございました。
guest

0

dt1の値が更新されないからでしょう。
直接いじるようにするか、dt2を利用するようにして下さい。

Python

1for x in range(samplerate): 2 dt1 = dt1 + datetime.timedelta(milliseconds=1) 3 time.append(dt1)

Python

1dt2 = dt1 2for x in range(samplerate): 3 dt2 = dt2 + datetime.timedelta(milliseconds=1) 4 time.append(dt2)

投稿2019/05/30 04:42

編集2019/05/30 04:43
LouiS0616

総合スコア35660

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mukku

2019/05/30 05:04

ありがとうございます。助かります。参考にいたします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問