Maya Script Python 可変長のリストを文字列フォーマットで出力

タイトルにMayaと書きながら、Mayaは関係ないです。
Pythonのカテゴリーも作ったほうが良いのか、迷うところですが、そのうち溜まったら作ります。

 

しかも内容がくだらないのですが、どうしても可変長のリストを整形した形で出力したく、
色々と方法を考えておりました。
因みに最初に試みた方法です。

list = ["abcdef","ABCDEF","123456","bcdefg","BCDEFG"]
print "{0:<25}{1:<25}{2:<25}".format(*list)

format関数に「*」(アスタリスク)をつけてリストを入れてやると、リストを展開して関数に渡してくれます。
出力結果は、

abcdef                   ABCDEF                   123456                   

こんなかんじです。
確かに可変長のリストを展開してくれるのですが、指定した範囲を超えたものは削除されます。
当然といえば当然です。
そして、指定した長さに至らない場合は、エラーが帰ってきてしまいます。なので、ダメです。

 

どうにか綺麗で見やすい書き方はないものだろうか。
結局こうなりました。

list = ["abcdef","ABCDEF","123456","bcdefg","BCDEFG"]
pstring = []
for i,x in enumerate(list):
	pstring.append("{0:<2}".format(i+1)+":{0:<25}".format(x))
	if (i+1)%3==0:
		pstring.append("\n")
print "".join(pstring)

出力結果は、

1 :abcdef                   2 :ABCDEF                   3 :123456                   
4 :bcdefg                   5 :BCDEFG                   

こんなかんじです。
うーん、もっとスマートな書き方があるような気がしますが、思いつきませんでした。

 

そういえば、スクリプトを書いているときに、以前書いた記事を参考にしよう、と自分のページの記事を見ました。
どうやらいくつか見られない記事があるようです。
不精してパーマリンクを日本語のままにしたからでしょうか?良く分かりません。
そのうち気が向いたら直します。
なにせ、そこに書いてあるスクリプトが文字化けしていて、元のスクリプトがどこにあるのかわからない。
探すのが面倒なので、放置しておきます。

コメントする

post date*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トラックバックする

トラックバック用URL:

アニメーションが親切に解説されております

レンダリング、ライティングの基本が分かります

図版が見やすい美術解剖書です