2

私がこのようなことをするとしましょう:

vList=[1236745404]
fList=[ "<td>{}</td>".format ]
[ f(x) for f, x in zip(fList, vList) ]

しかし今、整数を複数のプロセスストリームにフィードすることで、整数を時間文字列に変換したいと考えています。

擬似コード:

fList=[ "<td>{}</td>".format(time.strftime("%a %H&#58;%M %d %b %y", time.localtime())) ]
[ f(x) for f, x in zip(fList, vList) ]

そして、私が見たいのは:

['<td>Tue 22&#58;23 10 Mar 09</td>']

リスト内包表記変数の入力は 1 つの操作に制限されていますか、それとも出力を下流に渡すことができますか?

4

1 に答える 1

4

あなたの2つのケースはまったく異なります。str.format最初に、完全な文字列を作成した 2 番目に呼び出し可能な ( ) があります。

2 番目のオプションの呼び出し可能オブジェクトも作成する必要があります。この場合、ラムダが機能します。

fList=[lambda t: "<td>{}</td>".format(time.strftime("%a %H&#58;%M %d %b %y", time.localtime(t)))]

これは現在、1 つの呼び出し可能な a を持つリストであり、lambda1 つの引数 を受け入れ、完全な式 whereが に渡され、次に を使用してフォーマットされ、次に に渡されtた結果を返します。ttime.localtime()time.strftimestr.format()

デモ:

>>> import time
>>> vList=[1236745404]
>>> fList=[lambda t: "<td>{}</td>".format(time.strftime("%a %H&#58;%M %d %b %y", time.localtime(t)))]
>>> [f(x) for f, x in zip(fList, vList)]
['<td>Wed 05&#58;23 11 Mar 09</td>']
于 2013-05-13T17:31:02.797 に答える