在单独的行中打印列表列表
Print list of lists in separate lines
我有一个列表列表:
a = [[1, 3, 4], [2, 5, 7]]
我想要以下格式的输出:
1 3 4
2 5 7
我试过以下方法,但输出不是我想要的:
for i in a:
for j in i:
print(j, sep=' ')
输出:
1
3
4
2
5
7
将打印调用更改为使用 end
时:
for i in a:
for j in i:
print(j, end = ' ')
输出:
1 3 4 2 5 7
有什么想法吗?
遍历原始列表中的每个子列表,并在使用 *
:
的打印调用中解压
a = [[1, 3, 4], [2, 5, 7]]
for s in a:
print(*s)
分隔默认设置为 ' '
,因此无需明确提供。这打印:
1 3 4
2 5 7
在您的方法中,您对每个子列表中的每个元素进行迭代并单独打印。通过使用 print(*s)
你 解压 打印调用中的列表,这基本上转化为:
print(1, 3, 4) # for s = [1, 3, 4]
print(2, 5, 7) # for s = [2, 5, 7]
单线:
print('\n'.join(' '.join(map(str,sl)) for sl in l))
解释:
您可以使用连接函数将 list
转换为 str
:
l = ['1','2','3']
' '.join(l) # will give you a next string: '1 2 3'
'.'.join(l) # and it will give you '1.2.3'
所以,如果你想要换行符,你应该使用换行符。
但是 join 只接受字符串列表。要将事物列表转换为字符串列表,您可以为列表中的每个项目应用 str
函数:
l = [1,2,3]
' '.join(map(str, l)) # will return string '1 2 3'
并且我们将此构造应用于列表 l
中的每个子列表 sl
你可以这样做:
>>> lst = [[1, 3, 4], [2, 5, 7]]
>>> for sublst in lst:
... for item in sublst:
... print item, # note the ending ','
... print # print a newline
...
1 3 4
2 5 7
def print_list(s):
for i in range(len(s)):
if isinstance(s[i],list):
k=s[i]
print_list(k)
else:
print(s[i])
s=[[1,2,[3,4,[5,6]],7,8]]
print_list(s)
您可以在列表中的列表中输入列表......但所有内容都将按您期望的方式打印。
输出:
1
2
3
4
5
6
7
8
我相信这很简单:
a = [[1, 3, 4], [2, 5, 7]] # defines the list
for i in range(len(a)): # runs for every "sub-list" in a
for j in a[i]: # gives j the value of each item in a[i]
print(j, end=" ") # prints j without going to a new line
print() # creates a new line after each list-in-list prints
输出
1 3 4
2 5 7
a = [[1, 3, 4], [2, 5, 7]]
for i in a:
for j in i:
print(j, end = ' ')
print('',sep='\n')
输出:
1 3 4
2 5 7
有一种替代方法可以显示列表而不是将它们排列在子列表中:
tick_tack_display = ['1', '2', '3', '4', '5', '6', '7', '8', '9']
loop_start = 0
count = 0
while loop_start < len(tick_tack_display):
print(tick_tack_display[loop_start], end = '')
count +=1
if count - 3 == 0:
print("\n")
count = 0
loop_start += 1
输出:
123
456
789
lst = [[1, 3, 4], [2, 5, 7]]
def f(lst ):
yield from lst
for x in f(lst):
print(*x)
使用“产量来自”...
产生输出
1 3 4
2 5 7
[Program finished]
有一种更简单的单行方式:
a = [[1, 3, 4], [2, 5, 7]] # your data
[print(*x) for x in a][0] # one-line print
结果如你所愿:
1 3 4
2 5 7
确保将 [0]
添加到列表理解的末尾,否则,最后一行将是一个 None
值的列表,等于列表的长度。
我有一个列表列表:
a = [[1, 3, 4], [2, 5, 7]]
我想要以下格式的输出:
1 3 4
2 5 7
我试过以下方法,但输出不是我想要的:
for i in a:
for j in i:
print(j, sep=' ')
输出:
1
3
4
2
5
7
将打印调用更改为使用 end
时:
for i in a:
for j in i:
print(j, end = ' ')
输出:
1 3 4 2 5 7
有什么想法吗?
遍历原始列表中的每个子列表,并在使用 *
:
a = [[1, 3, 4], [2, 5, 7]]
for s in a:
print(*s)
分隔默认设置为 ' '
,因此无需明确提供。这打印:
1 3 4
2 5 7
在您的方法中,您对每个子列表中的每个元素进行迭代并单独打印。通过使用 print(*s)
你 解压 打印调用中的列表,这基本上转化为:
print(1, 3, 4) # for s = [1, 3, 4]
print(2, 5, 7) # for s = [2, 5, 7]
单线:
print('\n'.join(' '.join(map(str,sl)) for sl in l))
解释:
您可以使用连接函数将 list
转换为 str
:
l = ['1','2','3']
' '.join(l) # will give you a next string: '1 2 3'
'.'.join(l) # and it will give you '1.2.3'
所以,如果你想要换行符,你应该使用换行符。
但是 join 只接受字符串列表。要将事物列表转换为字符串列表,您可以为列表中的每个项目应用 str
函数:
l = [1,2,3]
' '.join(map(str, l)) # will return string '1 2 3'
并且我们将此构造应用于列表 l
sl
你可以这样做:
>>> lst = [[1, 3, 4], [2, 5, 7]]
>>> for sublst in lst:
... for item in sublst:
... print item, # note the ending ','
... print # print a newline
...
1 3 4
2 5 7
def print_list(s):
for i in range(len(s)):
if isinstance(s[i],list):
k=s[i]
print_list(k)
else:
print(s[i])
s=[[1,2,[3,4,[5,6]],7,8]]
print_list(s)
您可以在列表中的列表中输入列表......但所有内容都将按您期望的方式打印。
输出:
1
2
3
4
5
6
7
8
我相信这很简单:
a = [[1, 3, 4], [2, 5, 7]] # defines the list
for i in range(len(a)): # runs for every "sub-list" in a
for j in a[i]: # gives j the value of each item in a[i]
print(j, end=" ") # prints j without going to a new line
print() # creates a new line after each list-in-list prints
输出
1 3 4
2 5 7
a = [[1, 3, 4], [2, 5, 7]]
for i in a:
for j in i:
print(j, end = ' ')
print('',sep='\n')
输出:
1 3 4
2 5 7
有一种替代方法可以显示列表而不是将它们排列在子列表中:
tick_tack_display = ['1', '2', '3', '4', '5', '6', '7', '8', '9']
loop_start = 0
count = 0
while loop_start < len(tick_tack_display):
print(tick_tack_display[loop_start], end = '')
count +=1
if count - 3 == 0:
print("\n")
count = 0
loop_start += 1
输出:
123
456
789
lst = [[1, 3, 4], [2, 5, 7]]
def f(lst ):
yield from lst
for x in f(lst):
print(*x)
使用“产量来自”...
产生输出
1 3 4
2 5 7
[Program finished]
有一种更简单的单行方式:
a = [[1, 3, 4], [2, 5, 7]] # your data
[print(*x) for x in a][0] # one-line print
结果如你所愿:
1 3 4
2 5 7
确保将 [0]
添加到列表理解的末尾,否则,最后一行将是一个 None
值的列表,等于列表的长度。