在列表

时间:2018-04-18 02:04:21

标签: python python-3.x

我有一个包含列表的列表。

[['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循环。似乎没有什么工作,我只是一个初学者,所以我甚至不知道正确的方法来解决这个问题。如果有人可以帮助我,我真的很感激。

非常感谢!祝你有愉快的一天!

3 个答案:

答案 0 :(得分:2)

您可以将str.joinzip

一起使用
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循环确保你按照你想要的顺序获取元素,列表理解只是从指定索引的子列表中获取元素并按顺序打印它们。