Python 3.x 将列表打印到数组,但始终在列表中再打印一项

Python 3.x 将列表打印到数组,但始终在列表中再打印一项,python-3.x,Python 3.x,我有一张单子 p = [10, 4, 18, 3] 我希望输出为10104101818183 现在我有 pe = [] counter = 0 temp = 0 while counter<=4: for i in range(0,len(p)-temp+1): pe.append(p[i]) temp+=1 counter+=1 pe=[] 计数器=0 温度=0 计数器时,可以使用列表切片: p = [10, 4, 18, 3] for

我有一张单子

p = [10, 4, 18, 3]
我希望输出为
10104101818183

现在我有

pe = []
counter = 0
temp = 0
while counter<=4: 
    for i in range(0,len(p)-temp+1):
        pe.append(p[i])

    temp+=1
    counter+=1
pe=[]
计数器=0
温度=0

计数器时,可以使用列表切片:

p = [10, 4, 18, 3]

for i in range(1, len(p)+1):
    print(*p[:i], end=' ')
印刷品:

10 10 4 10 4 18 10 4 18 3

编辑:要将值放入列表中,请执行以下操作:

p = [10, 4, 18, 3]

out = []
for i in range(1, len(p)+1):
    out.extend( p[:i] )

# print the output
for value in out:
    print(value, end=' ')
在python 3中:

p = [10, 4, 18, 3]
q= []
g=[]
for i in range(len(p)+1):
    q = p[0:i]
    g=g+q
str1 = ' '.join(str(e) for e in g)
print(str1) 
输出

10 10 4 10 4 18 10 4 18 3

解决方案

p=[10,4,18,3]
长度=长度(p)
对于范围内的i(长度):
对于p[:i]中的j:
p、 附加(j)
对于范围内的i(长度):
p、 附加(p.pop(0))
印刷品(p)
输出

[10, 10, 4, 10, 4, 18, 10, 4, 18, 3]

这就是诀窍!我试图理解为什么这样做有效,但我真的很困惑。因此,我理解,切片是指使用冒号从列表中获取一部分,但一旦列表被切片一次,它如何返回到列表中?@eq1nox循环的每次迭代都会从列表中获取较大的切片
p
。第一次迭代
p[:1]
,第二次迭代
p[:2]
,依此类推
p[:1]
返回
[10]
p[:2]
返回
[10,4]
…哦,好的,我现在明白了。谢谢最后一件事,我想把它放到它自己的列表中。我尝试过使用list(),.append(),但没有得到想要的结果。