strでmaxをかけると直感と異なる動作になる[Python]
# 正規表現で文字列から数字を抽出していたときのことl = re.findall(r"([1-9]\d*)", "for 5-10 h")
# 抽出されたリストにはstrで数字が入っているl>> ['5', '10']
# maxで大きい方をとりたいmax(l)>> '5' # なぜ5が選ばれるのか?
# 困ったのでとりあえずintにキャストl2 =>> [5, 10]
# こうすると直感通り10が選ばれるmax(l2)>> 10# 別のパターンで検証l=re.findall(r"([1-9]\d*)", "400, 500, 600 and 800 degC")
max(l)>> '800' # こちらの場合だとうまくいく。繰り上がりが原因か?