Python 2.7を実行していObjectListView
ますが、人口統計情報が大量に表示されています。正しく並べ替えることはできますが、出力は100000.0
フォーマットで表示されます。ロケールモジュールを使用して整数を文字列に変換すると、降順の文字列が9,181, 9,069, 818, 813, 8,730,
次のように並べ替えられます。整数のように並べ替える方法はありますが、出力はObjectListView
?でフォーマットされたコンマとして表示されます。
質問する
538 次
2 に答える
1
yourColumn
次を使用して、表示文字列ではなく整数値で並べ替えることができます。
yourColumn = ColumnDefn("Title", "center", 100, "title", stringConverter=int_to_string_with_commas)
。
int_to_string_with_commas
整数を文字列(コンマ付き)に変換する関数はどこにありますか?
import locale
locale.setlocale(locale.LC_ALL, 'en_US') # your locale here
def int_to_string_with_commas(value):
return locale.format("%d", value, grouping=True)
書く他の方法については、この質問int_to_string_with_commas
を参照してください。
。
于 2012-10-16T00:37:10.713 に答える
0
私を正しい軌道に乗せてくれてありがとう!最終的に、ObjectListView.pyソースに2行を追加することになりました。3601行目あたりで、_StringToValue関数を次のように変更しました。
if converter == "%cd": ##New Line
return locale.format("%d", value, grouping=True) ##New Line
else:
fmt = converter or "%s"
try:
return fmt % value
except UnicodeError:
return unicode(fmt) % value
上記のように、ローカルインポート後にロケールを設定する必要もあります。
locale.setlocale(locale.LC_ALL, 'en_US')
ありがとう、私はしばらくの間これに頭を打ちつけてきました。乾杯!
于 2012-10-16T17:00:23.147 に答える