2013-08-27 3 views
0

Я довольно новичок в Python и пытаюсь работать с списком списков.Работа с списком списков в Python

Скажем, у меня есть:

myList = [[1,2,3,4],[10,11,12,13],[29,28,27,26]] 

и функция называется туРипсЫоп

Я мог бы написать:

for x in myList: 
    for y in x: 
    myFunction(y) 

Однако, это было бы просто назвать MYFUNCTION по каждому отдельному пункту во всех подсписков , Как бы я включил то, что я мог бы назвать, когда я закончу все предметы в каждом подсписке (например, я бы назвал 1, 2, 3 и 4, а затем цикл понял бы, что это в конце подсписчика, и я мог бы вызовите это подписок).

Большое спасибо!

ответ

5

Делайте то, что вы хотите в космическом цикле:

>>> for x in myList: 
...  for y in x: 
...   print(y) 
...  print(x) # <--- 
... 
1 
2 
3 
4 
[1, 2, 3, 4] 
10 
11 
12 
13 
[10, 11, 12, 13] 
29 
28 
27 
26 
[29, 28, 27, 26] 
+0

Спасибо! Что делать, если то, что я хотел бы сделать во внешнем цикле, может быть выполнено только после завершения элемента во внутреннем цикле? В этом случае я хотел бы работать с элементами во внутреннем цикле для каждого подсписок, а затем вызвать подписок, а затем перейти к элементам в следующем подсписке. – John

+0

@John. В приведенном выше коде 'print (x)' выполняется только после завершения внутреннего цикла. – falsetru

0

Надеется, что это то, что вы хотите:

def myFunction(y): 
    print y 

myList = [[1,2,3,4],[10,11,12,13],[29,28,27,26]] 

for x in range(len(myList)): 
    print "Sublist:",x, myList[x] 
    for y in myList[x]: 
    myFunction(y) 
1

John, она иерархически синтаксис Python, в то время как он отступ это блок кода, т.е. все команды находятся в упаковке (в блоке):

for x in myList: 
    # block of code started 
    for y in x: 
     # here is new block 
     # some here will be called totally "all elements in all sublists" times 
     # i.e. "number of elements in x" times 
     # per "number of sublist in myList" times 
     # and here will be called the same number of times (it is block) 
    # here you're out of "for y in x" loop now (you're in previous block) 
    # some here will be called "myList" number of times 
    # and here 
# here you are out of "for x in myList" loop 
Смежные вопросы