1

順序を知らずに変数値を文字列に挿入することは可能ですか?
私はよく知っている

"% world" % "Hello"

構文ですが、それに匹敵するものはありますか

string = "Order id %{order.id}, price: %price" % (price, order)

変数の使用とその配置に一貫性がない文字列のリストが必要であり、それらをすべて関数内で置き換えたいので、私は尋ねています。

4

3 に答える 3

4

使用できます.format

>>> class order(object) : pass
... 
>>> a = order()
>>> a.id=3
>>> "{order.id}".format(order=a)
'3'
>>> "{order.id} and then a {foo} hit the {baz} ".format(baz="fan",foo="rocket",order=a) 
'3 and then a rocket hit the fan '

これは、本質的に順序付けされていないキーワード引数を使用します。

于 2013-03-01T01:53:47.540 に答える
1

文字列のリスト、または辞書はありますか? それが実際のリストである場合、どの値が何であるかがわからないため、おそらく何も役に立ちません。しかし、それが dict の場合、いくつかのオプションがあります。%演算子の使用:

"Order number %(order_id)s, price: %(price)s" % dict(order_id=3, price=4.00)

しかし、あなたの例にあることに気づきました。これは、カスタムオブジェクトであるorder.idことを意味しているように聞こえます。orderその場合、新しい.formatメソッドを使用できます。これにより、文字列内で属性を直接検索できます。

"Order number {order.id}, price: {price}".format(order=..., price=...)
于 2013-03-01T01:55:41.500 に答える
0

orderこれは、とpriceが整数であることを前提としています。の代わりに、他の任意の書式指定子を使用できますd。(つまりfフロートの場合)

string = "Order id %(order)d, price: %(price)d" % {'price': price, 'order': order}
于 2013-03-01T01:54:46.307 に答える