无法将元组的迭代器转换为字符串的迭代器

阿德里安·马丁内斯·佩雷斯

我正在尝试将元组的迭代器转换为字符串的迭代器。我必须使用 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...

将您的退货更改为(我猜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]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章