我想制作一个字符串列表[' 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']
给出不同的结果。
有人能解释一下这里发生了什么吗?
答案 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)]