0

私のウェブサイトのサーバースクリプトには、次のようなPythonコードが少しあります。

console.append([str(x) for x in data])
console.append(str(max(data)))

非常に単純だと思うかもしれませんが、出力される結果は次のとおりです。

['3', '12', '3']
3

何らかの理由で、Python は 3 が [3,12,3] の最大値であると考えています!

それで、私は何か間違ったことをしていますか?それとも、これは python 側の不正行為ですか?

4

2 に答える 2

8

文字'3'は ASCII テーブルで より上位にあるためです'1'。数値ではなく文字列を比較しています。数値で比較したい場合は、数値に変換する必要があります。1 つの方法はmax(data, key=int)ですが、実際に数値をリストに格納することもできます。

于 2009-10-10T12:51:04.607 に答える
1

私は Python をほとんど知りませんが、文字列の最大数を取っています。つまり、'3..'よりも大きいということです'1..'

于 2009-10-10T12:49:46.420 に答える