2015-11-13 22 views
0
def coordinate(): 
    list = [[-180, -140], -220, -180] 
    coordinates = [] 
    i = 0 
    n = 1 

    for x in range(list[0]): 
     for y in range(list[n]): 
      coordinates.append((x, y)) 

    return coordinates 

有没有一种方式,因为它看起来for循环不工作,因为我这样做时出现的paranticess的这种方式我可以删除出现在list[0] paranticess,list[2]Python中,如何删除paranticess

或者任何其他方式来使循环工作?

+0

对不起,我试过回答这个问题,但是经过这么多问题后,你的问题究竟出在什么地方变得不太清楚。例如,你的意思是“括号”或方括号?你想用代码做什么?现在正在做什么?我认为你最重要的问题在于你如何滥用范围功能。谷歌的范围功能,并通过一些例子,我认为它会真的帮助。 –

+0

@ Back2Basics它可能是重复的。但是在这种情况下,只需按下额外括号中的'删除'就可以使列表变平。还有什么是列表[2]?我不认为list [2]甚至没有被访问过。 OP是否意味着列表[0] [1]? –

+0

@ Back2Basics它不同于那个问题。并非所有元素都是列表。 –

回答

0

到flaten嵌套列表,你可以试试这个:

def flatten(container):               
    for item in container:              
     if isinstance(item, list):            
      for inner_item in flatten(item):          
       yield inner_item             
     else:                 
      yield item 

>>> list(flatten([[-180, -140], -220, [-180]])) 
[-180, -140, -220, -180] 
>>> list(flatten([[-180, [-140]], -220, [-180]])) 
[-180, -140, -220, -180] 

如果所有的元素是列表,你可以使用itertools.chain.from_iterable

>>> from itertools import chain 
>>> l = [[-180, -140], [-220], [-180]] 
>>> list(chain.from_iterable(l)) 
[-180, -140, -220, -180]