在python花括号中,数字来自range()

Ast*_*rid 1 python string

我怎样才能得到这个输出?

'[{0} {1} {2} {3} {4} {6} {7} {8} {9}]'
Run Code Online (Sandbox Code Playgroud)

我试过这个

string_val ='{{{}}} '.format(range(10))
Run Code Online (Sandbox Code Playgroud)

但它给出了

'{[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]} '
Run Code Online (Sandbox Code Playgroud)

Mar*_*ers 5

您需要格式化每个单独的数字,然后将该结果放入另一个格式化操作以添加方括号:

'[{}]'.format(' '.join(['{{{}}}'.format(i) for i in range(10)]))
Run Code Online (Sandbox Code Playgroud)

或者更可读,因为我们不必逃避花括号:

'[{}]'.format(' '.join(['{%d}' % i for i in range(10)]))
Run Code Online (Sandbox Code Playgroud)

演示:

>>> ['{{{}}}'.format(i) for i in range(10)]
['{0}', '{1}', '{2}', '{3}', '{4}', '{5}', '{6}', '{7}', '{8}', '{9}']
>>> '[{}]'.format(' '.join(['{{{}}}'.format(i) for i in range(10)]))
'[{0} {1} {2} {3} {4} {5} {6} {7} {8} {9}]'
>>> '[{}]'.format(' '.join(['{%d}' % i for i in range(10)]))
'[{0} {1} {2} {3} {4} {5} {6} {7} {8} {9}]'
Run Code Online (Sandbox Code Playgroud)