无法将元组迭代器转换为字符串迭代器
Can't convert an iterator of tuple to an iterator of strings
我正在尝试将元组迭代器转换为字符串迭代器。
我必须使用 itertools,所以我不允许使用 for 或 while。
import itertools
def parlar_lloro(it0):
it1 = filter(lambda x: len(x)>=5, it0)
it2 = map(lambda x: x[:len(x)-2], it1)
it3, it4 = itertools.tee(it2, 2)
n = len(list(it3))
itn = itertools.repeat('CROA', n)
ite = zip(it4, itn)
return itr
在 Python 的 Shell 上执行此操作时我得到的是:
>>> [(abc,'CROA'),(def,'CROA'),(ghi,'CROA')]
我想要:
>>> ['abc','CROA','def','CROA','ghi','CROA']
如果你想使用 itertools
那么我怀疑你应该使用的是 itertools.chain
...
将您的 return 更改为(我猜 itr
打错了,您的意思是 ite
):
return itertools.chain.from_iterable(ite)
仅供参考,同样的事情可以使用 list-comp:
res = [sub for el in ((it[:-2], 'CROA') for it in x if len(it) >= 5) for sub in el]
我正在尝试将元组迭代器转换为字符串迭代器。 我必须使用 itertools,所以我不允许使用 for 或 while。
import itertools
def parlar_lloro(it0):
it1 = filter(lambda x: len(x)>=5, it0)
it2 = map(lambda x: x[:len(x)-2], it1)
it3, it4 = itertools.tee(it2, 2)
n = len(list(it3))
itn = itertools.repeat('CROA', n)
ite = zip(it4, itn)
return itr
在 Python 的 Shell 上执行此操作时我得到的是:
>>> [(abc,'CROA'),(def,'CROA'),(ghi,'CROA')]
我想要:
>>> ['abc','CROA','def','CROA','ghi','CROA']
如果你想使用 itertools
那么我怀疑你应该使用的是 itertools.chain
...
将您的 return 更改为(我猜 itr
打错了,您的意思是 ite
):
return itertools.chain.from_iterable(ite)
仅供参考,同样的事情可以使用 list-comp:
res = [sub for el in ((it[:-2], 'CROA') for it in x if len(it) >= 5) for sub in el]