Форум сайта python.su
568
# -*- coding:utf-8 -*- mycortege = (('а','я',('е','э','ё')),'б','в','г','д','з',('и','й')) #1 def flatten(iterable): res = [] def loop(tpl): for i in tpl: if isinstance(i, tuple): loop(i) else: res.append(i) loop(iterable) return res print flatten(mycortege) #2 from compiler.ast import flatten as flt print flt(mycortege) #3 def fltn(iterable): for i in iterable: if isinstance(i, tuple): for x in fltn(i): yield x else: yield i print list(fltn(mycortege)) #4 cortege = ((u'а',u'я'),u'б',u'в',u'г',u'д',(u'е',u'э',u'ё'),u'з',(u'и',u'й')) for x in sum(map(list, cortege), []): print x #5 from operator import add cortege = ((u'а',u'я'),u'б',u'в',u'г',u'д',(u'е',u'э',u'ё'),u'з',(u'и',u'й')) for x in reduce(add, map(list, cortege)): print x
Офлайн
88
import re mycortege = (('а','я',('е','э','ё')),'б','в','г','д','з',('и','й')) print(re.findall('\w', str(mycortege))
Офлайн
568
Shaman,
['x', 'd', '0', 'x', 'b', '0', 'x', 'd', '1', 'x', '8', 'f', 'x', 'd', '0', 'x', 'b', '5', 'x', 'd', '1', 'x', '8', 'd', 'x', 'd', '1', 'x', '9', '1', 'x', 'd', '0', 'x', 'b', '1', 'x', 'd', '0', 'x', 'b', '2', 'x', 'd', '0', 'x', 'b', '3', 'x', 'd', '0', 'x', 'b', '4', 'x', 'd', '0', 'x', 'b', '7', 'x', 'd', '0', 'x', 'b', '8', 'x', 'd', '0', 'x', 'b', '9']
Офлайн
88
re.findall(r'\w|(?:\\x[abcdef\d]{2})', str(mycortege), re.I)
Офлайн
568
for x in re.findall(r'\w|(?:\\x[abcdef\d]{2})', str(mycortege), re.I): print x
\xd0
\xb0
\xd1
\x8f
\xd0
\xb5
\xd1
\x8d
Офлайн
88
однако
[eval('"%s"' % i) for i in re.findall(r'\w|(?:\\x[abcdef\d]{2})', str(mycortege), re.I)]
Офлайн
568
import re mycortege = (('а','я',('е','э','ё')),'б','в','г','д','з',('и','й')) for x in [eval('"%s"' % i) for i in re.findall(r'\w|(?:\\x[abcdef\d]{2})', str(mycortege), re.I)]: print x
�
�
�
�
�
�
�
�
�
�
import re mycortege = ((u'а',u'я',(u'е',u'э',u'ё')),u'б',u'в',u'г',u'д',u'з',(u'и',u'й')) for x in [eval('"%s"' % i) for i in re.findall(r'\w|(?:\\x[abcdef\d]{2})', str(mycortege), re.I)]: print x
u
u
0
4
3
0
u
u
0
4
4
f
u
u
0
4
3
5
u
u
0
4
4
d
u
u
0
4
5
1
u
u
0
4
3
1
u
u
0
4
3
2
u
u
0
4
3
3
u
u
0
4
3
4
u
u
0
4
3
7
u
u
0
4
3
8
u
u
0
4
3
9
Офлайн
88
Логично. Давайте я не буду отмазываться разговорами об особых случаях и сразу скажу что у меня 3-й питон?)
Отредактировано Shaman (Июнь 6, 2013 11:29:56)
Офлайн
чето не пойму, у него в кортеже есть символы либо кортежи с символами, надо перебрать по-порядку все символы? Чего тогда мудрить?
for i in tuples_or_str_in_tuple: if isinstance(i, tuple): for s in i: что-то делаем else: что-то делаем
Офлайн