将列表拆分为行

时间:2015-01-04 10:24:33

标签: python

我有一个full_list如下:

full_list = [[[-180, 90], [-180, 80], [-175, 80], [-175, 90]], [[-180, 80], [-180, 70], [-175, 70], [-175, 80]], [[-180, 70], [-180, 60], [-175, 60], [-175, 70]], [[-180, 60], [-180, 50], [-175, 50], [-175, 60]]]

如何生成名为ans的​​列表如下?

ans = [[[-180, 90], [-180, 80], [-175, 80], [-175, 90]],
       [[-180, 80], [-180, 70], [-175, 70], [-175, 80]],
       [[-180, 70], [-180, 60], [-175, 60], [-175, 70]],
       [[-180, 60], [-180, 50], [-175, 50], [-175, 60]]]

两个列表都相同,唯一的区别是后者被分成行。

2 个答案:

答案 0 :(得分:5)

你在谈论漂亮的印刷吗?你的清单就是这样。

>>> full_list = [[[-180, 90], [-180, 80], [-175, 80], [-175, 90]], [[-180, 80], [-180, 70], [-175, 70], [-175, 80]], [[-180, 70], [-180, 60], [-175, 60], [-175, 70]], [[-180, 60], [-180, 50], [-175, 50], [-175, 60]]]

>>> from pprint import pprint
>>> pprint(full_list)
[[[-180, 90], [-180, 80], [-175, 80], [-175, 90]],
 [[-180, 80], [-180, 70], [-175, 70], [-175, 80]],
 [[-180, 70], [-180, 60], [-175, 60], [-175, 70]],
 [[-180, 60], [-180, 50], [-175, 50], [-175, 60]]]

答案 1 :(得分:1)

如另一个答案所述,pprint是自然而然的方式。

但根据您的确切需求,您也可以这样做:

print(*full_list, sep='\n')

# Output:
[[-180, 90], [-180, 80], [-175, 80], [-175, 90]]
[[-180, 80], [-180, 70], [-175, 70], [-175, 80]]
[[-180, 70], [-180, 60], [-175, 60], [-175, 70]]
[[-180, 60], [-180, 50], [-175, 50], [-175, 60]]

要自定义一位,您可以使用range

def my_custom_printer(full_list):
    for i in range(0, len(full_list), 2):
        try:
            print("{}, {}".format(full_list[i], full_list[i+1]))
        except IndexError:
            # len(full_list) is odd, so just print the last index
            print(full_list[i])

my_custom_printer(full_list)

# Output:
[[-180, 90], [-180, 80], [-175, 80], [-175, 90]], [[-180, 80], [-180, 70], [-175, 70], [-175, 80]]
[[-180, 70], [-180, 60], [-175, 60], [-175, 70]], [[-180, 60], [-180, 50], [-175, 50], [-175, 60]]

但后来它变得有点脏...主要是因为实际数据及其表示不再严格一致