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日

悬赏问题

  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计