Найти - Пользователи
Полная версия: Сегодня на манеже кортеж в кортеже
Начало » Python для новичков » Сегодня на манеже кортеж в кортеже
1 2 3
FishHook
# -*- 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
Shaman
import re
mycortege = (('а','я',('е','э','ё')),'б','в','г','д','з',('и','й'))
print(re.findall('\w', str(mycortege))
и ещё 100 относительно честных способов)
FishHook
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']
Shaman
re.findall(r'\w|(?:\\x[abcdef\d]{2})', str(mycortege), re.I)
FishHook
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
Shaman
однако
[eval('"%s"' % i) for i in re.findall(r'\w|(?:\\x[abcdef\d]{2})', str(mycortege), re.I)]
FishHook
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
Shaman
Логично. Давайте я не буду отмазываться разговорами об особых случаях и сразу скажу что у меня 3-й питон?)
dimy44
чето не пойму, у него в кортеже есть символы либо кортежи с символами, надо перебрать по-порядку все символы? Чего тогда мудрить?
for i in tuples_or_str_in_tuple:
    if isinstance(i, tuple):
        for s in i:
            что-то делаем
    else:
        что-то делаем
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB