Sah*_*and 7 python string format list-comprehension list
比方说,我有一个列表datalist,用len(datalist) = 4.假设我希望列表中的每个元素都以这种方式表示在字符串中:
s = "'{0}'::'{1}'::'{2}' '{3}'\n".format(datalist[0], datalist[1], datalist[2], datalist[3])
Run Code Online (Sandbox Code Playgroud)
我不喜欢打datalist[index]那么多次,觉得应该有更有效的方法.我试过了:
s = "'{0}'::'{1}'::'{2}' '{3}'\n".format(datalist[i] for i in range(4))
Run Code Online (Sandbox Code Playgroud)
但这不起作用:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: tuple index out of range
Run Code Online (Sandbox Code Playgroud)
有没有人知道有效和简洁地实现这一目标的有效方法?
是的,使用参数解压缩"splat"运算符*:
>>> s = "'{0}'::'{1}'::'{2}' '{3}'\n"
>>> datalist = ['foo','bar','baz','fizz']
>>> s.format(*datalist)
"'foo'::'bar'::'baz' 'fizz'\n"
>>>
Run Code Online (Sandbox Code Playgroud)
>>> "'{0[0]}'::'{0[1]}'::'{0[2]}' '{0[3]}'\n".format(datalist)
"'foo'::'bar'::'baz' 'fizz'\n"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2175 次 |
| 最近记录: |