LoginSignup
1
0

More than 1 year has passed since last update.

皆はどっち派?"ダブルクオート" vs 'シングルクオート' どっちが速いのか [Python 3.10.6][速さ比較]

Last updated at Posted at 2022-08-24


皆さんはダブルクオートとシングルクオート、どちらをよく使いますか? 私は打ちやすいダブルクオートが好きです。

ダブルクオート、シングルクオートは文字列を表すためにあります。

でも、なぜ2つ必要なんでしょうか?

なぜ2つも必要なの?

プログラムは1つめのダブルクオートを「文字列の始まり」、2つめのダブルクオートを「文字列の終わり」と認識します。
このような文字列を表したいとき、

value = "123"

ダブルクオートを使うとこうなってしまいます。

"value = "123", 0"

なのでこのように書いてしまうとプログラムが「value = 」と「, 0」を文字列と認識し混乱してしまいます。
でも文字列を表すための物がもう一つあれば...

'value = "123", 0'

プログラムは1つめのシングルクオートを「文字列の始まり」、2つめのシングルクオートを「文字列の終わり」と認識します。
これで文字列の中で文字列を表せます。
もちろん、シングルクオートとダブルクオートを入れ替えても結果は変わりません。

では本題です。

ダブルクオート、シングルクオートどっちを使ったら処理が速くなるか

皆さん、これは一度は気になったことがありと思います。
「ダブルクオート、シングルクオート、どう違うの?」
では、それを調べるためのサンプルコードを用意しました。

import time

def Quotation_Mark(): # ダブルクオート
    start_time = time.process_time()
    for i in range(100000000):
        a = "aa" + "bb"
    end_time = time.process_time()
    return end_time - start_time

def Apostrophe(): # シングルクオート
    start_time = time.process_time()
    for i in range(100000000):
        a = 'aa' + 'bb'
    end_time = time.process_time()
    return end_time - start_time

if __name__ == "__main__":
    Quotation_Mark_ans = 0
    Apostrophe_ans     = 0
    for i in range(10):
        Quotation_Mark_ans += Quotation_Mark()
        Apostrophe_ans     += Apostrophe()
    print(Quotation_Mark_ans - Apostrophe_ans) # 負の数値にっていればシングルクオートのほうが速い。

これを何回か実行していきます。
ダブルクオートを先に計算、シングルクオートを先に計算を同じ回数ずつやっていきます。

実行結果

回目 ダブル(") シングル(') 結果
1 27.953125秒 26.625 秒 -1.328125秒
2 21.90625 秒 21.546875秒 0.359375秒
3 19.09375 秒 19.546875秒 -0.453125秒
4 20.375 秒 20.96875 秒 -0.59375 秒
5 20.125 秒 20.6875 秒 -0.5625 秒
6 22.421875秒 21.53125 秒 0.890625秒
7 22.328125秒 21.3125 秒 1.015625秒
8 21.53125 秒 22.328125秒 -0.796875秒
9 19.875 秒 21.21875 秒 -1.34375 秒
10 23.96875 秒 23.9375 秒 0.03125 秒
平均 21.9578125秒 21.9703125秒 0.0125 秒

結果は誤差もありますがほぼ同じですね。

いい自由研究になりました。

1
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0