2017-05-20 48 views
0
for i in range(9999999): 
if i <= 9: 
    print '000',i,'000000' 
elif i <= 99: 
    print '000',i,'00000' 
elif i <= 999: 
    print '000',i,'0000' 
elif i <= 9999: 
    print '000',i,'000' 
elif i <= 99999: 
    print '000',i,'00' 
elif i <= 999999: 
    print '000',i,'0' 
elif i <= 9999999: 
    print '000',i 

我想保存在可變類型列表中的所有輸出
輸出看起來是這樣的:000 000 0000我想所有的輸出保存在一個變量類型列表

+0

什麼是'可變type'? – luoluo

+0

變量在Python中沒有類型。 –

+0

var = ['我的意思是','列表'] – user8039538

回答

0

下面的代碼顯示了一個更簡單的方法來生成您的字符串,並且還顯示如何將它們附加到列表而不是打印它們。

lst = [] 
for i in range(9999999): 
    if 100 <= i <= 999: 
     prefix = "050" 
    else: 
     prefix = "000" 
    i_str = str(i) 
    suffix = "0" * (7-len(i_str)) 
    result = prefix + " " + i_str + " " + suffix 
    # or result = " ".join((prefix, i_str, suffix)) 
    lst.append(result) 
0

看來,每個i小於9 999 999,你的目標是建立由三個部分組成的字符串:

  • '000';
  • i的字符串表示形式;
  • 取決於i的字符串表示的長度的零序列。

可以實現這一目標用一個簡單的列表理解:

lst = ['000 %d %s'.strip() % (i, '0' * (7-len(str(i)))) for i in xrange(9999999)] 

不過請注意,這樣一個大名單需要一些時間來建立和佔用一些內存。

如果你不需要整個列表一次,但你要通過一個處理它的元素之一,我建議你創建一臺發電機:

lst_gen = ('000 %d %s'.strip() % (i, '0' * (7-len(str(i)))) for i in xrange(9999999)) 

,然後遍歷它:

for s in lst_gen: 
    print s 

或索要後續元素並處理它們一個接一個:

s = next(lst_gen) 
print s 
s = next(lst_gen) 
print s 
相關問題