Monica_MTF 2023-01-30 11:19 采纳率: 73.9%
浏览 38
已结题

Python返回参数组成新元组

#344
函数 main) 接收两个等长的元组 x和y 作为参数,其中x中的所有元素各不相同,
要求返回x中部分元素组成的新元组,如果x中某个元素y中对应位置上的元素等价于True,就保留x中的这个元素,最后返回所有符合条件的元素组成新的元组。
例如,main(1,2,3,4),(1,0,0,1))返回(1,4)。
不能使用循环结构,不能使用列表推导式或生成器表达式,不能有多余输出。
考点:元组
什么叫“对应位置上的元素等价于True”?它没说两个元素“相等”。

def main(x,y):
    return x,y
'''
答题错误!您的代码执行结果为:
((1, 2, 3, 4), (1, 0, 0, 1))
(('a', 'b', 'c'), (0, 1, 0))
'''
def main(x,y):
    #return x,y
    return(map(str,(x,y)))
'''
答题错误!您的代码执行结果为:
<map object at 0x0000018D41CE6BE0>
<map object at 0x0000018D40140A90>
'''
def main(x,y):
    #tup1 = ()        #元组中的元素值不允许删除
    if x == y:
        return(map(str,(x,y)))
'''
答题错误!您的代码执行结果为:
None
None
'''
  • 写回答

2条回答 默认 最新

  • P2441M 2023-01-30 15:56
    关注

    可以使用内置函数filter:

    def main(x: tuple, y: tuple):
        return tuple(filter(lambda a: y[x.index(a)], x))  # y[x.index(a)] 表示 x 中某个元素对应的 y 中的元素,因为 x 中的元素是不重复的,所以可以直接用 index 查询位置
    

    这个函数接收一个lambda和一个可迭代对象,根据lambda返回的值进行筛选

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 2月15日
  • 已采纳回答 2月7日
  • 创建了问题 1月30日

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度