亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

python中的格式列表

python中的格式列表

手掌心 2021-03-08 16:12:11
我有一個包含數字25-1的列表。我正在嘗試像游戲板一樣打印出來,其中所有數字都匹配:我發現了如何通過執行以下操作將行添加到列表中:_b = map(str, board)_board = ' | '.join(_b)而且我知道如何在每行上打印5個數字。但是我無法使所有數字都對齊。有沒有辦法做到這一點?
查看完整描述

3 回答

?
jeck貓

TA貢獻1909條經驗 獲得超7個贊

board = range(1,26) #the gameboard

for row in [board[i:i+5] for i in range(0,22,5)]: #go over chunks of five

    print('|'.join(["{:<2}".format(n) for n in row])+"|") #justify each number, join by |

    print("-"*15) #print the -'s

產生


>>> 

1 |2 |3 |4 |5 |

---------------

6 |7 |8 |9 |10|

---------------

11|12|13|14|15|

---------------

16|17|18|19|20|

---------------

21|22|23|24|25|

---------------

或使用grouper@abarnert建議的配方:


for row in grouper(5, board):


查看完整回答
反對 回復 2021-03-24
?
隔江千里

TA貢獻1906條經驗 獲得超10個贊

只是為了好玩,這里有一個1-liner來創建編號的行:


['|'.join([str(y).center(4) for y in x]) for x in map(None,*[reversed(range(1,26))]*5)]

稍微分解一下,添加行,仍然不是一個干凈的答案:


nums = map(None,*[reversed(range(1,26))]*5)

rows = ['|'.join([str(y).center(4) for y in x]) for x in nums]

board = ('\n'+'-'*len(rows[0])+'\n').join(rows)

print board


查看完整回答
反對 回復 2021-03-24
  • 3 回答
  • 0 關注
  • 209 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號