1

arr と myname をフォーマットするにはどうすればよいですか?

arr = { 
'pincode':'pincode',
'username':'username',
'password':'password',
'action':'action',
'forward':'forward'
}
myname="myname"
print """my pincode is: %(pincode)s and my name is: %s !""" % {arr, myname}
print """my pincode is: %(pincode)s and my name is: %s !""" % (arr, myname)

出力を期待しています:

私の暗証番号は: 暗証番号で、私の名前は: myname です!

取得:

TypeError: format requires a mapping

TypeError: unhashable type: 'dict'

TypeError: not enough arguments for format string
4

3 に答える 3

2

新しい を使用するのはどうですかstr.format:

arr = { 
'pincode':'PINCODE',
'username':'USERNAME',
'password':'PASSWORD',
'action':'ACTION',
'forward':'FORWARD'
}
myname="MYNAME"
print """my pincode is: {pincode} and my name is: {0}!""".format(myname, **arr)

例えば:

>>> arr = {
... 'pincode':'PINCODE',
... 'username':'USERNAME',
... 'password':'PASSWORD',
... 'action':'ACTION',
... 'forward':'FORWARD'
... }
>>> myname="MYNAME"
>>> print """my pincode is: {pincode} and my name is: {0}!""".format(myname, **arr)
my pincode is: PINCODE and my name is: MYNAME!
>>>

**arr辞書をキーワードとして に渡す必要がありformatます。

于 2013-09-04T00:27:31.003 に答える
1
arr = {
'pincode':'pincode',
'username':'username',
'password':'password',
'action':'action',
'forward':'forward'
}
myname="myname"
print """my pincode is: %s and my name is: %s !""" % (arr['pincode'], myname)
print """my pincode is: %s and my name is: %s !""" % (arr['pincode'], myname)

これはうまくいくようです

編集:ああ、それに殴られた!

于 2013-09-04T00:26:38.833 に答える
1

これは機能します:

arr = { 
'pincode':'pincode',
'username':'username',
'password':'password',
'action':'action',
'forward':'forward'
}
myname="myname"
print """my pincode is: %s and my name is: %s !""" % (arr['pincode'], myname)

formatで名前付き引数を使用することもできます。

print 'my pincode is: {pincode} and my name is: {myname} !'.format(
       myname=myname, **arr)

mynameを使用して、マッピング内の他のすべてのキーワードを設定する前に、キーワードをその値に設定することに注意してください**arr

乾杯。

于 2013-09-04T00:20:42.263 に答える