多行打印一个大列表
Printing a large list in multiple lines
有没有好的方法可以多行打印一个大列表?假设一个列表有 10000 个元素,并且通过将其写入文件,它全部在一行中,这对于文本编辑器来说很难打开它。
我知道我可以用计数器遍历大小并在每 1000 个元素后打印 \n
。例如:
my_list = [0,1,2,3,4,5,6,7,8,9]
x = 0
for i in my_list:
if x % 5 == 0:
print()
print(i, end='')
x += 1
打印
01234
56789
我想知道是否有一个 Python 函数可以更有效地做到这一点。
您可以分块遍历列表并将每个块打印到文件中:
my_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
chunk_size = 3
with open('myfile.txt', 'w') as f:
for i in range(0, len(my_list), chunk_size):
chunk = my_list[i:i+chunk_size]
print(*chunk, file=f)
这导致文件内容
0 1 2
3 4 5
6 7 8
9
您可以更改 print()
行以根据您的喜好格式化输出。例如删除数字之间的空格,使用 print(*chunk, sep='', file=f)
.
就代码行数而言,很难击败它:
chunk_size = 10
result = '\n'.join(str(my_list)[i:i+chunk_size] for i in range(0, len(str(a)), chunk_size))
print(result)
请注意,这仍然会打印逗号。
查看您尝试的解决方案:
my_list = [0,1,2,3,4,5,6,7,8,9]
x = 0
for i in my_list:
if x % 5 == 0:
print()
print(i, end='')
x += 1
可以使用 enumerate
进行改进:
my_list = [0,1,2,3,4,5,6,7,8,9]
for x, i in enumerate(my_list):
if x % 5 == 0:
print()
print(i, end='')
请注意,使用“i”表示此处的项目并使用“x”表示索引是非常粗暴的,因为“i”通常是索引
其实连x%5都可以用三元表达式拉到打印语句中:
for x, i in enumerate(my_list):
print(i, end='\n' if x%5==0 else '')
有没有好的方法可以多行打印一个大列表?假设一个列表有 10000 个元素,并且通过将其写入文件,它全部在一行中,这对于文本编辑器来说很难打开它。
我知道我可以用计数器遍历大小并在每 1000 个元素后打印 \n
。例如:
my_list = [0,1,2,3,4,5,6,7,8,9]
x = 0
for i in my_list:
if x % 5 == 0:
print()
print(i, end='')
x += 1
打印
01234
56789
我想知道是否有一个 Python 函数可以更有效地做到这一点。
您可以分块遍历列表并将每个块打印到文件中:
my_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
chunk_size = 3
with open('myfile.txt', 'w') as f:
for i in range(0, len(my_list), chunk_size):
chunk = my_list[i:i+chunk_size]
print(*chunk, file=f)
这导致文件内容
0 1 2
3 4 5
6 7 8
9
您可以更改 print()
行以根据您的喜好格式化输出。例如删除数字之间的空格,使用 print(*chunk, sep='', file=f)
.
就代码行数而言,很难击败它:
chunk_size = 10
result = '\n'.join(str(my_list)[i:i+chunk_size] for i in range(0, len(str(a)), chunk_size))
print(result)
请注意,这仍然会打印逗号。
查看您尝试的解决方案:
my_list = [0,1,2,3,4,5,6,7,8,9]
x = 0
for i in my_list:
if x % 5 == 0:
print()
print(i, end='')
x += 1
可以使用 enumerate
进行改进:
my_list = [0,1,2,3,4,5,6,7,8,9]
for x, i in enumerate(my_list):
if x % 5 == 0:
print()
print(i, end='')
请注意,使用“i”表示此处的项目并使用“x”表示索引是非常粗暴的,因为“i”通常是索引
其实连x%5都可以用三元表达式拉到打印语句中:
for x, i in enumerate(my_list):
print(i, end='\n' if x%5==0 else '')