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
こんなかんじです。
うーん、もっとスマートな書き方があるような気がしますが、思いつきませんでした。
そういえば、スクリプトを書いているときに、以前書いた記事を参考にしよう、と自分のページの記事を見ました。
どうやらいくつか見られない記事があるようです。
不精してパーマリンクを日本語のままにしたからでしょうか?良く分かりません。
そのうち気が向いたら直します。
なにせ、そこに書いてあるスクリプトが文字化けしていて、元のスクリプトがどこにあるのかわからない。
探すのが面倒なので、放置しておきます。
コメントする
トラックバックする
トラックバック用URL: