python字符串列表

时间:2015-08-20 14:51:48

标签: python string list

我想制作一个字符串列表[' 0010',' 0020',...,' 0100']

我无法理解为什么有两种不同的表达方式

>>> ["%04d" % i*10 for i in range(11)]
['', '0010', '00100010', '001000100010', '0010001000100010',
'00100010001000100010', '001000100010001000100010',
'0010001000100010001000100010', '00100010001000100010001000100010',
'001000100010001000100010001000100010',
'0010001000100010001000100010001000100010']

>>> ["%04d" % (i*10) for i in range(11)]
['0000', '0010', '0020', '0030', '0040', '0050',
'0060', '0070', '0080', '0090', '0100']

给出不同的结果。

有人能解释一下这里发生了什么吗?

3 个答案:

答案 0 :(得分:1)

是的,这与转换为字符串没有任何关系 - 你正在做什么

 (x % i) * 10 

在一个案例中

x % (i * 10) 

在另一个因为括号

答案 1 :(得分:1)

BODMAS ..

BODMAS代表Brackets,Order,Divide,Multiply,Add,Subtract

在第一个表达式中..

      String respStr = EntityUtils.toString(resp.getEntity());
      JSONObject obj = new JSONObject(respStr);

它正在进行10次"%04d" %i。

在第二个表达式中..

["%04d" % i*10 for i in range(11)]

它正在做有意义的事情。

答案 2 :(得分:0)

第一个是等同于

[("%04d" % i) * 10 for i in range(11)]