2017-02-16 6 views
0

Я новичок в python и пытаюсь понять, как итерации через вложенный кортеж.Итерирование через вложенный кортеж в python

здесь кортеж:

x=((1,2,('a', 'b', (6,9,7)), 6,('$','@'))) 

Я пытаюсь итерацию, так что я могу напечатать каждое значение отдельно, как:

1 
2 
a 
b 
6 
9 
7 
6 
$ 
@ 

Вот мой код, пожалуйста, дайте мне знать, что я m do wrong here:

x=((1,2,('a', 'b', (6,9,7)), 6,('$','@'))) 
f=0 
for y in x: 
    print(x[f]) 
    f = f+1 
+0

См: http://stackoverflow.com/a/2158532/4932879 –

ответ

1

Вы можете попробовать с рекурсией. Проверьте, является ли элемент кортежем, если он затем выполняет рекурсивный вызов функции, если он не печатает его.

x=(((1,2,3,4),2,('a', 'b', (6,9,7)), 6,('$','@'))) 

def foo(a): 
    for b in a: 
     if isinstance(b,tuple): 
      foo(b) 
     else: 
      print b 
foo(x) 

Выход:

1 
2 
3 
4 
2 
a 
b 
6 
9 
7 
6 
$ 
@