2017-05-20 6 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私は<br>は、出力は次のようになり 変数の型リスト内のすべての出力を保存したい

+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の文字列表現の長さに応じた0のシーケンス。このような大きなリストを構築するには時間がかかり、一部のメモリを占有することが

    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 
関連する問題