循环在python中 - 重复句子,只改变里面的数字

时间:2018-05-11 18:07:57

标签: python loops

我有一个序列:

    ['Valor','005 - 001']=>DB('Cubo_Amostra_Cons',!Ano,'000 - 001');
    ['Valor','007 - 001']=>DB('Cubo_Amostra_Cons',!Ano,'000 - 001');
    ['Valor','019 - 001']=>DB('Cubo_Amostra_Cons',!Ano,'000 - 001');
    ['Valor','024 - 001']=>DB('Cubo_Amostra_Cons',!Ano,'000 - 001');


    ['Valor','005 - 002']=>DB('Cubo_Amostra_Cons',!Ano,'000 - 002');
    ['Valor','007 - 002']=>DB('Cubo_Amostra_Cons',!Ano,'000 - 002');
    ['Valor','019 - 002']=>DB('Cubo_Amostra_Cons',!Ano,'000 - 002');
    ['Valor','024 - 002']=>DB('Cubo_Amostra_Cons',!Ano,'000 - 002');


    ['Valor','005 - 003']=>DB('Cubo_Amostra_Cons',!Ano,'000 - 003');
    ['Valor','007 - 003']=>DB('Cubo_Amostra_Cons',!Ano,'000 - 003');
    ['Valor','019 - 003']=>DB('Cubo_Amostra_Cons',!Ano,'000 - 003');
    ['Valor','024 - 003']=>DB('Cubo_Amostra_Cons',!Ano,'000 - 003');

....

每行上唯一变化的是连字符后面的数字:

['Valor','005 - 001']=>DB('Cubo_Amostra_Cons',!Ano,'000 - 001');

如何将此值从“001”循环到“030”?

我试过了:

for x in range(001,030):
print ( "['Valor','005 -" x"']=>DB('Cubo_Amostra_Cons',!Ano,'000 - "x"');
    ['Valor','007 - "x"']=>DB('Cubo_Amostra_Cons',!Ano,'000 - "x"');
    ['Valor','019 - "x"']=>DB('Cubo_Amostra_Cons',!Ano,'000 - "x"');
    ['Valor','024 - "x"']=>DB('Cubo_Amostra_Cons',!Ano,'000 - "x"');")

但我没有得到正确的序列。

2 个答案:

答案 0 :(得分:1)

我相信您要格式化值字符串:

for x in range(20, 30):
    x_str = str(x).zfill(3)

...并在输出中使用它。此外,您可以参数化您的四种变体:

class = [5, 7, 19, 24]
for post in range(20, 30):
    post_str = str(post).zfill(3)
    for pre in class:
        pre_str = str(pre).zfill(3)
        valor_str = pre_str + " - " + post_str
        cons_str  = "000 - " + post_str
        # Here, valor_str in the first label you want;
        #        cons_str is the last.

你能从那里结束吗?

请注意,range中列出的最终值未被使用;我相信你想要

for post in range(1, 31):

答案 1 :(得分:0)

python是一种基于数组的语言,可以进行矢量化。 请使用向量(数组)而不是for循环,以获得更好的性能。