我有一个包含列表的列表。
[['H','J','K','L'],['Q','W','E','R'],['R','W','Q','T']]
我想在一行中打印相同的索引,并在它们之间留一个空格。所以输出将是:
H Q R
J W W
K E Q
L R T
我尝试使用enumerate和while循环使用for循环。似乎没有什么工作,我只是一个初学者,所以我甚至不知道正确的方法来解决这个问题。如果有人可以帮助我,我真的很感激。
非常感谢!祝你有愉快的一天!
答案 0 :(得分:2)
您可以将str.join
与zip
:
s = [['H', 'J', 'K', 'L'], ['Q', 'W', 'E', 'R'], ['R', 'W', 'Q', 'T']]
new_s = '\n'.join(' '.join(i) for i in zip(*s))
输出:
H Q R
J W W
K E Q
L R T
答案 1 :(得分:0)
'''
OP has 3 nested lists. OP wants to print each row of the list unto a line with
a space in between each line item.
'''
sample_list = [['H', 'J', 'K', 'L'], ['Q', 'W', 'E', 'R'], ['R', 'W', 'Q', 'T']]
import numpy as np
sample_array = np.array(sample_list)
print(sample_array.reshape(4, 3))
这是输出:
[['H' 'J' 'K']
['L' 'Q' 'W']
['E' 'R' 'R']
['W' 'Q' 'T']]
作为初学者,了解numpy可能很有用。当您处理列表中的数据时,它简化了此类任务。我在这里做的是我从你展示的嵌套列表中创建了一个numpy数组。 numpy有一个叫做的方法。 reshape(),允许您对齐数据所需的行数和列数。在您的示例中,您希望字母为4行和3列,因此将4,3传递给.reshape()函数将允许您为数据获取4行和3列。作为一个初学者,Python中有一些库,比如numpy,可以帮助你简化这样的任务。我希望这个答案有助于您了解更多信息。
答案 2 :(得分:0)
对于您的具体情况,只需执行以下操作即可:
for i in range(len(list_a[0])):
print(" ".join([l[i] for l in list_a]))
for循环确保你按照你想要的顺序获取元素,列表理解只是从指定索引的子列表中获取元素并按顺序打印它们。