0
tabulate
モジュールを使用して、コンソールで情報をうまく印刷しています。 Done
Sの全てが一緒にグループ化されるようにtabulateモジュールをアルファベット順にグループ化するにはどうすればいいですか?
+-------------------------------+
| Task | Status | Rating |
|---------+---------------------+
| A | Done | Good |
| B | Done | Bad |
| D | Done | Good |
| C | Pending | |
+---------+----------+----------+
:私はこれに行きたい
+-------------------------------+
| Task | Status | Rating |
|---------+---------------------+
| A | Done | Good |
| B | Done | Bad |
| C | Pending | |
| D | Done | Good |
+---------+----------+----------+
:私は現在、これを持っているのpython 2.6
を使用しています。
現在tabulateの辞書を受け取り、私はこのような値を展開します。
def generate_table(data):
table = []
headers = ['Task', 'Status', 'Rating']
for key, value in data.iteritems():
print key, value
if 'Rating' in value:
m, l = value['Status'], value['Rating']
m = m.split('/')[-1]
temp = [key,m,l]
table.append(temp)
else:
m, l = value['Status'], None
m = m.split('/')[-1]
temp = [key,m,l]
table.append(temp)
print tabulate(table, headers, tablefmt="psql")
この例では、保留中のタスクをCからDにスワップします。これは意図的なものですか? – languitar
'value.get( 'Rating'、None)'を使用すると 'else'を避けることができます。これは、キー(' 'Rating'')がデフォルト(' 'None'')この場合)は辞書の一部ではありません。残りの人は@languitar –
@languitar noに返信したときにしか答えられませんが、間違いでした。良いキャッチ – ARL