-3

我试过了:

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

并得到:

123

但我想得到:

0123

感谢帮助 :)

4

5 回答 5

4

许多方法之一是不遍历您的列表,而是遍历一个开头包含零的新列表,然后是您的列表。像这样:

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

好的,查看编辑后的代码:

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="")

现在,我们如何让它0在开始时打印 a ?嗯,在循环中没有 0 可以到达任何地方,所以它几乎必须在循环之前:

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

将其更改为:

mylist = [1, 2, 3]
print('0', end='')
for i in mylist:
    print(str(i), end='')
于 2013-04-09T19:02:17.083 回答