-3

私は試した:

mylist=[1,2,3]                                                          
for i in mylist:                                            
    time=0                                                         
    time=time+i                                                  
    print(time, end="")                                      

そして得た:

123

しかし、私は取得したい:

0123

手伝ってくれてありがとう :)

4

5 に答える 5

4

いくつかの方法の1つは、リストではなく、最初にゼロを含む新しいリストを反復処理し、次にリストを反復処理することです。そのようです:

mylist=[1,2,3]                                            
for i in [0] + mylist:
    print(i, end="")
于 2013-04-09T18:46:34.660 に答える
4

入力リストが制御下になく、前に追加したり、新しい連結リストを作成したりしたくない0場合 (たとえば、非常に大きい場合)、itertools.chain()を使用できます。

import itertools

mylist = [1, 2, 3]                                                         
for i in itertools.chain([0], mylist):
    pass  # Your loop code...
于 2013-04-09T18:47:30.883 に答える
0

ゼロが最初の要素ではない場合に言及したので、次のようにします。

mylist = [1,2,3]
print(('0' * (1 if mylist[0] else 0)) + ''.join(str(x) for x in mylist))

0 が mylist の最初の要素でない場合、これは最初に 0 を与えます:)

>>> mylist = [1,2,3]
>>> print(('0' * (1 if mylist[0] else 0)) + ''.join(str(x) for x in mylist))
0123
>>> mylist = [0,1,2,3]
>>> print(('0' * (1 if mylist[0] else 0)) + ''.join(str(x) for x in mylist))
0123
于 2013-04-09T18:45:35.537 に答える
0

OK、編集されたコードを見てください:

mylist=[1,2,3]                                                          
for i in mylist:                                            
    time=0                                                         
    time=time+i                                                  
    print(time, end="")

明らかに、ループのたびにtime=0thenを実行することは と同じです。はと同じです。したがって、修正する前に単純化しましょう。time=time+itime=iprint(time, end="")print(i, end="")

mylist=[1,2,3]
for i in mylist:
    print(i, end="")

では、最初に a を出力するにはどうすればよい0でしょうか。さて、ループのどこにも 0 がないので、ほとんどループの前に来る必要があります。

mylist=[1,2,3]
print(0, end="")
for i in mylist:
    print(i, end="")
于 2013-04-09T18:49:21.490 に答える