3

有没有办法以更好的方式编写这行代码:

"""{a};{b};{c};{d}""".format(a = myDictionary[a], b = myDictionary[b], c = myDictionary[c], d = myDictionary[d])

像这样的东西?

"""{a};{b};{c};{d}""".format(myDictionary)
4

4 回答 4

14

在字典上使用关键字扩展:

"{a};{b};{c};{d}".format(**myDictionary)
于 2012-09-06T13:20:04.483 回答
1

format可以取消引用它的参数:

>>> D=dict(a=1,b=2,c=3,d=4)
>>> '{0[a]};{0[b]};{0[c]};{0[d]}'.format(D)
'1;2;3;4'

可以在类上使用类似的语法:

>>> class C:
...  a=1
...  b=2
...  c=3
...  d=4
...
>>> '{0.a};{0.b};{0.c};{0.d}'.format(C)
'1;2;3;4'

请参阅格式规范迷你语言

于 2012-09-06T14:41:59.470 回答
0
"""%(a)s;%(b)s;%(c)s;%(d)s""" % myDictionary

尽管有很多争议和推动,传统的字符串格式化操作符“%”没有离开的动机(也没有迹象),因为很多事情都变得更简单了。

于 2012-09-06T14:42:07.473 回答
0

这是你要找的吗?

di = {
  'key1': 'value1',
  'key2': 'value2',
  'key3': 'value3'
}

print "value of key3 is: %(key3)s" % di

key3 的值为: value3

于 2012-09-06T14:52:23.283 回答