如何对tuple的每个元素应用操作并获取返回值组成的新tuple
解决方案
你可以直接用以下两种简洁的Python原生写法实现需求,两种写法都天然支持函数返回tuple后的嵌套结构:
方法1:生成器表达式转tuple(更灵活,适合带额外处理逻辑的场景)
直接在tuple()构造器中写入遍历逻辑,无需手动组装结果:
result = tuple(function(elem) for elem in your_tuple)
方法2:map函数转tuple(更简洁,适合直接调用已有函数的场景)
map会自动将目标函数作用到可迭代对象的每个元素上,再用tuple()直接转换结果即可:
result = tuple(map(function, your_tuple))
示例代码
# 示例函数:可返回普通值或tuple,结果会自动适配嵌套结构 def demo_func(x): # 普通返回值场景 return x ** 2 # 若测试嵌套tuple场景,替换为下行即可 # return (x, x + 1) input_tuple = (3, 2) # 方法1运行效果 res1 = tuple(demo_func(e) for e in input_tuple) print(res1) # 普通返回值场景输出:(9, 4);嵌套场景输出:((3,4), (2,3)) # 方法2运行效果 res2 = tuple(map(demo_func, input_tuple)) print(res2) # 输出和方法1完全一致
内容的提问来源于stack exchange,提问作者KansaiRobot
相关产品推荐
相关产品推荐

