我要做的是为10位数组合打印所有可能的组合...但是对于1我想要它打印0000000001,0000000002等。但是ZFill不起作用。我做错了什么?
a = range(0, 1000000)
print str(a).zfill(1000000)
答案 0 :(得分:6)
您正在zfill
对象上执行list
。相反,您需要对列表的每个项目执行zfill
。以下是范围10的示例示例:
>>> a = range(0, 10)
# v this value represent the count of zeros
# v It should be `7` in your case
>>> [str(i).zfill(10) for i in a]
['0000000000', '0000000001', '0000000002', '0000000003', '0000000004', '0000000005', '0000000006', '0000000007', '0000000008', '0000000009']
string.zfill(s,width)
在左侧填充数字字符串 s ,数字为零,直到达到给定的宽度。以符号开头的字符串处理正确。
答案 1 :(得分:2)
你也可以让rename()
处理填充:
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapMvcAttributeRoutes();
routes.MapHttpRoute(
name: "DefaultApiGet",
routeTemplate: "api/{controller}/{action}",
defaults: new { action = "Get" },
constraints: new { httpMethod = new HttpMethodConstraint("GET") }
);
答案 2 :(得分:0)
print str(a).zfill(7)
^^
在此指定宽度。您只需执行
即可print map(lambda x:str(x).zfill(7), range(0, 10))