打印 x 个列表,然后在 python 中插入新行
Print x number of list and then insert new line in python
我有一个这样的整数列表
[1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
我想在一行中打印 10 个整数,然后插入一个新行,这样输出应该如下所示:
[1, 2, 1, 2, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 2, 2, 1,
1, 1, 1, 1, 1, 1, 2, 1, 1, 1,
1,1,1,1,1,1,1,1,1,1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
我需要这样做,因为我需要将列表的输出截图到我的论文中,如果列表看起来更整洁就更好了。先谢谢了。
尝试pprint。
import pprint
foo = [1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
pp = pprint.PrettyPrinter(width=30, compact=True)
pp.pprint(foo)
结果:
[1, 2, 1, 2, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 2, 2, 1,
1, 1, 1, 1, 1, 1, 2, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1]
您可以调整宽度和缩进等...
如果您不想使用库,可以使用以下一种方法:
for i in range(len(l)//10+1):
if i==0:
k=str(l[i*10:i*10+10])
k=k[:-1]+','
print(k)
elif i==len(l)//10:
k=str(l[i*10:i*10+10])
k=k[1:-1]+']'
print(k)
else:
k=str(l[i*10:i*10+10])
k=k[1:-1]+','
print(k)
输出:
[1, 2, 1, 2, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 2, 2, 1,
1, 1, 1, 1, 1, 1, 2, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1]
如果您不想使用任何外部库,这里有一个方法:
print('['+'\n'.join([','.join(map(str, a[i:i+x])) for i in range(0,len(a),x)])+']')
试试这个。我已经严格测试了这个。
n = [1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
i = 0
j = len(n)
j = j - j%10
if len(n)%10==0:
j -= 10
print(end='[')
while i<j:
print(*n[i:i+10], sep=',', end=',\n')
i += 10
print(*n[i:], sep=',', end=']')
输出:
[1,2,1,2,1,1,1,1,1,1,
1,1,1,1,1,1,1,2,2,1,
1,1,1,1,1,1,2,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1]
给出的示例有 67 个元素。我的输出包含 7 行。前 6 行每行 10 个元素,最后一行有 7 个元素。您可以将 10 替换为您想要的任何数字。
我想补充一个答案。它更像 pythonic 和单行代码。
a, x = list(range(10,77)), 5
print('[', *[str(i)+',' if (j+1)%x!=0 else str(i)+',\n' for j, i in enumerate(a[:-1])],sep='',end=str(a[-1])+']')
输出:
[10,11,12,13,14,
15,16,17,18,19,
20,21,22,23,24,
25,26,27,28,29,
30,31,32,33,34,
35,36,37,38,39,
40,41,42,43,44,
45,46,47,48,49,
50,51,52,53,54,
55,56,57,58,59,
60,61,62,63,64,
65,66,67,68,69,
70,71,72,73,74,
75,76]
所以我在玩昨天,但我必须去上班才能完成它。 size 变量可以让你改变长度,并在输出中很好地打印出来。如果您确实需要在输出中添加括号,那应该很容易。
希望这能为您指明正确的方向!
myList = ["a", "b", "c", "d", "e", "f", "g", "h", "i"]
size = 5 # Number Per Row
startIndex = 0 # Start at the beginning index of myList
try:
for x in range(len(myList)):
for y in range(size):
if startIndex >= len(myList):
break
print(myList[startIndex], end=" ")
startIndex = startIndex + 1
print()
if startIndex >= len(myList):
break
except IndexError:
print("\nIndex Error") # Left this in for debugging purposes
我有一个这样的整数列表
[1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
我想在一行中打印 10 个整数,然后插入一个新行,这样输出应该如下所示:
[1, 2, 1, 2, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 2, 2, 1,
1, 1, 1, 1, 1, 1, 2, 1, 1, 1,
1,1,1,1,1,1,1,1,1,1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
我需要这样做,因为我需要将列表的输出截图到我的论文中,如果列表看起来更整洁就更好了。先谢谢了。
尝试pprint。
import pprint
foo = [1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
pp = pprint.PrettyPrinter(width=30, compact=True)
pp.pprint(foo)
结果:
[1, 2, 1, 2, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 2, 2, 1,
1, 1, 1, 1, 1, 1, 2, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1]
您可以调整宽度和缩进等...
如果您不想使用库,可以使用以下一种方法:
for i in range(len(l)//10+1):
if i==0:
k=str(l[i*10:i*10+10])
k=k[:-1]+','
print(k)
elif i==len(l)//10:
k=str(l[i*10:i*10+10])
k=k[1:-1]+']'
print(k)
else:
k=str(l[i*10:i*10+10])
k=k[1:-1]+','
print(k)
输出:
[1, 2, 1, 2, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 2, 2, 1,
1, 1, 1, 1, 1, 1, 2, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1]
如果您不想使用任何外部库,这里有一个方法:
print('['+'\n'.join([','.join(map(str, a[i:i+x])) for i in range(0,len(a),x)])+']')
试试这个。我已经严格测试了这个。
n = [1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
i = 0
j = len(n)
j = j - j%10
if len(n)%10==0:
j -= 10
print(end='[')
while i<j:
print(*n[i:i+10], sep=',', end=',\n')
i += 10
print(*n[i:], sep=',', end=']')
输出:
[1,2,1,2,1,1,1,1,1,1,
1,1,1,1,1,1,1,2,2,1,
1,1,1,1,1,1,2,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1]
给出的示例有 67 个元素。我的输出包含 7 行。前 6 行每行 10 个元素,最后一行有 7 个元素。您可以将 10 替换为您想要的任何数字。
我想补充一个答案。它更像 pythonic 和单行代码。
a, x = list(range(10,77)), 5
print('[', *[str(i)+',' if (j+1)%x!=0 else str(i)+',\n' for j, i in enumerate(a[:-1])],sep='',end=str(a[-1])+']')
输出:
[10,11,12,13,14,
15,16,17,18,19,
20,21,22,23,24,
25,26,27,28,29,
30,31,32,33,34,
35,36,37,38,39,
40,41,42,43,44,
45,46,47,48,49,
50,51,52,53,54,
55,56,57,58,59,
60,61,62,63,64,
65,66,67,68,69,
70,71,72,73,74,
75,76]
所以我在玩昨天,但我必须去上班才能完成它。 size 变量可以让你改变长度,并在输出中很好地打印出来。如果您确实需要在输出中添加括号,那应该很容易。
希望这能为您指明正确的方向!
myList = ["a", "b", "c", "d", "e", "f", "g", "h", "i"]
size = 5 # Number Per Row
startIndex = 0 # Start at the beginning index of myList
try:
for x in range(len(myList)):
for y in range(size):
if startIndex >= len(myList):
break
print(myList[startIndex], end=" ")
startIndex = startIndex + 1
print()
if startIndex >= len(myList):
break
except IndexError:
print("\nIndex Error") # Left this in for debugging purposes