Python 如何使for循环始终在开始时打印零,而不将零元素作为第一个元素?

Python 如何使for循环始终在开始时打印零,而不将零元素作为第一个元素?,python,list,loops,indexing,zero,Python,List,Loops,Indexing,Zero,我试过: mylist=[1,2,3] for i in mylist: time=0 time=time+i

我试过:

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

123
但我想得到:

0123

谢谢您的帮助:)

既然您提到了如果零不是第一个元素,请使用:

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]                                            
for i in [0] + mylist:
    print(i, end="")

如果输入列表不在您的控制之下,并且您既不想预先添加
0
,也不想构建新的串联列表(例如,如果它非常大),您可以使用:


好的,查看编辑的代码:

mylist=[1,2,3]                                                          
for i in mylist:                                            
    time=0                                                         
    time=time+i                                                  
    print(time, end="")
显然,每次通过循环执行
time=0
然后
time=time+i
time=i
相同。因此,
print(time,end=”“)
print(i,end=“”)
相同。因此,在尝试修复之前,让我们先对其进行简化:

mylist=[1,2,3]
for i in mylist:
    print(i, end="")
现在,我们如何让它在开始时打印
0
?在循环中没有0可以到达任何地方,所以它必须在循环之前到达:

mylist=[1,2,3]
print(0, end="")
for i in mylist:
    print(i, end="")
将此更改为:

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

打印“0%d%”(时间)
?您的意思是要用前导0填充字符串,使其始终为固定长度?为什么要这样做?如果你想要不同的东西,为什么要打印列表?是否最好事先将0插入列表的前面?还是尝试从0开始循环?如果是最后一种情况,则完全跳过列表并循环遍历一个范围(4)或xrange(4)。检查我的解决方案并试一试,您不想要一个固定长度,但如果不存在,则实际打印零。不考虑0是否已存在,但它可以工作,假设您不在乎:)(查看标题的模糊描述。)“没有零作为第一要素)是的,这篇文章有四到五个不同的正确答案是因为要求不明确。处理那个案件与问题有关吗?我不知道。哈哈,在这一点上我得同意你的看法:P这里是狂野的西部:)itertools很酷,尽管这项任务有点过分了+1在这里任何地方都一样,过分夸张,尽管事实上这是对一个奇怪的问题的一个巧妙的解决办法。在你的正确头脑中,当你有这个问题的时候,谁不是多余的,想要O(n)连接?考虑MyLista是未知的场景,过早地打印0会导致额外的零,这可能是不需要的:)考虑一下mylist未知的情况,过早地打印0会导致额外的零,这可能是不需要的:)您的思路是正确的tho和很好的澄清@Torxed:是什么让你认为额外的0是多余的?这个问题很模糊,也很难理解,但它说“始终在开头打印零”,而不是“如果不存在,则添加前导0”,或“用0填充4个字符”,因此……这是我对他意图的猜测。“如果没有零元素作为第一个元素”,我假设它等于“如果元素[0]不是零,则打印零”:)@Torxed:嗯,至少有三种不同的方式来阅读这个问题,如果OP从来没有告诉我们哪个是哪个,我想最好的办法就是指出每个答案回答的解释…
mylist=[1,2,3]
print(0, end="")
for i in mylist:
    print(i, end="")
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='')