gpt4 book ai didi

python - 在 python 中为 "yield from"语句中的对象应用函数

转载 作者:行者123 更新时间:2023-12-02 15:21:34 24 4
gpt4 key购买 nike

# currently I have this code

def some_func():
for match in re.finditer(regex, string):
yield other_func(match)

我想知道有没有办法把它压缩成一行

# looking for something like

def some_func():
yield from other_func(re.finditer(regex, string))

最佳答案

您可以使用 map . map 接受两个参数:一个函数和一个可迭代对象。它迭代 iterable 并应用函数并返回一个迭代器(它产生映射值 - function(first item), function(seoncd item), ...)

def some_func():
yield from map(other_func, re.finditer(regex, string))

yield from 这里不是必需的,因为 map 返回一个迭代器(在 Python 3.x 中):

def some_func():
return map(other_func, re.finditer(regex, string))

例子:

>>> import re
>>>
>>> def other_func(match):
... return match.group()
...
>>> def some_func():
... return map(other_func, re.finditer(regex, string))
...
>>> regex = '.'
>>> string = 'abc'
>>> list(some_func())
['a', 'b', 'c']

关于python - 在 python 中为 "yield from"语句中的对象应用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36112582/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com