用Python打印列表中指定数量的项目

用Python打印列表中指定数量的项目,python,algorithm,printing,list-comprehension,Python,Algorithm,Printing,List Comprehension,我有一张单子 res = [6, 6, -1, -1, 6] 我想在一行上打印第一个v1字符,用空格隔开;以及用空格分隔的新行上剩余的v2字符 res = [6, 6, -1, -1, 6] restemp = res out = [] v1, v2 = 3, 2 for iii in range(v1): out.append(res[iii]) for abc in range(v1): restemp.pop(abc) [print(ou, end=' ') for ou

我有一张单子

res = [6, 6, -1, -1, 6]
我想在一行上打印第一个v1字符,用空格隔开;以及用空格分隔的新行上剩余的v2字符

res = [6, 6, -1, -1, 6]
restemp = res
out = []
v1, v2 = 3, 2
for iii in range(v1):
    out.append(res[iii])
for abc in range(v1):
    restemp.pop(abc)
[print(ou, end=' ') for ou in out]
[print(ttv, end=' ') for ttv in restemp]
这是回报

6 6 -1 6 -1
但我希望它能回来

6 6 -1
6 -1
我尝试在两者之间添加一个
print('\n')
语句,但随后返回

6 6 -1

6 -1

您在inserted语句中省略了
end=
,这意味着您将使用默认换行符。您只需要使用一个:

print()

更好的方法是,尝试使用
join
函数:将每个组连接到一个空格分隔的字符串中,然后使用换行符连接这些组:

out = ' '.join(str(k) for k in res[:v1])
tmp = ' '.join(str(k) for k in res[v2:])
result = '\n'.join(out, tmp)
print(result)

请注意,您可以将其链接到一个长命令中。。。然后不要这样做。

您在插入的语句中省略了
end=
,这意味着您将使用默认换行符。您只需要使用一个:

print()

更好的方法是,尝试使用
join
函数:将每个组连接到一个空格分隔的字符串中,然后使用换行符连接这些组:

out = ' '.join(str(k) for k in res[:v1])
tmp = ' '.join(str(k) for k in res[v2:])
result = '\n'.join(out, tmp)
print(result)
请注意,您可以将其链接到一个长命令中。。。然后不要这样做。

您可以使用:

print(*out)
print(*restemp)
输出:

6 6 -1
6 -1
您可以使用:

print(*out)
print(*restemp)
输出:

6 6 -1
6 -1

请不要将列表理解用于副作用,如打印。只在创建新列表时使用它们。您的列表也是
[6,6,6,-1,-1,6]
还是
[6,6,-1,-1,6]
?为什么你要用一种非常奇怪的方式来创作第二部分?你什么也没说。不使用
v2
有什么问题?请不要使用列表理解来产生副作用,例如打印。只在创建新列表时使用它们。您的列表也是
[6,6,6,-1,-1,6]
还是
[6,6,-1,-1,6]
?为什么你要用一种非常奇怪的方式来创作第二部分?你什么也没说。不使用
v2
又有什么用呢?