2015-01-04 218 views
-1

我有一个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]]] 

两个表都是一样的,唯一不同的是后面的一个被分割成几行。

+0

什么?你是否在某个地方打印清单,你希望列表的一部分出现在不同的行上? – SuperSaiyan 2015-01-04 10:26:26

+0

@Thrustmaster是 – jean 2015-01-04 10:26:53

+1

那些看起来完全一样 – sapi 2015-01-04 10:26:57

回答

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]]] 
+0

是的,这正是我一直在寻找的。将被接受。顺便说一下,如果我必须将两个子列表放在一行中,即[[-180,90],[-180,80],[-175,80],[ - 175,90]],[[ - - 180,80],[-180,70],[-175,70],[-175,80]] – jean 2015-01-04 10:32:38

+0

'pprint'不能自行完成,您需要自己编写该部分 – jamylak 2015-01-04 11:58:34

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]] 

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

+0

或'如果print()函数可用,则打印(* full_list,sep ='\ n')。 – 2015-01-04 10:37:07

+0

@AshwiniChaudhary正确,没有想到那个。答案更新(如果你不介意) – Jivan 2015-01-04 10:40:13