私はPython list.sort()
関数に非常に奇妙な問題があります。Python list.sort()が動作していない/奇妙な動作を示しています
私のプログラムでは、os.listdir()
でファイルのリストを取得しています。これが最後の要素への第二第三の位置と3.JPGであるべきこと、
['0.jpg', '1.jpg', '10.jpg', '11.jpg', '12.jpg', '13.jpg', '14.jpg', '15.jpg', '16.jpg', '17.jpg', '18.jpg', '19.jpg', '2.jpg', '20.jpg']
(このリストに問題があるようなものを返します - 9.jpgは、リストの最後にどこかにあります。 ) 今、私はlist.sort()
を行うので、このリスト(最後の数字が最も大きいもの)の最後の要素を取得したいと思います。
これは奇妙なことですが、これはリストには何もしません。私はまた、全く同じリストを返すsorted(list)
を試しました。だから私は通訳者を開き、何らかの理由でがとなったリスト["3.jpg","2.jpg","5.jpg"]
を並べ替えるように言った。
私の質問は次のとおりです:誰でも私はなぜpythonが最初のリストをソートしないのですか?また、この問題をどのように解決すればよいでしょうか?いくつかの回避策がありますか?場合
は興味anyone's:私のコードをhere's:
li=os.listdir("screenshots")
li.sort()
print(li)
'' 10.jpg'の前に来2.jpg'必要がありますなぜ? 'BA'の前に' C'を入れますか? – jwodder
数字ではなく文字列を比較しています。例えば、アルファベット順に '' 10 "<" 2 "'です。 –
この質問を見る:http://stackoverflow.com/questions/4836710/does-python-have-a-built-in-function-for-string-natural-sort –