前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >怎么才能把结果放到一个Vector tuple里: Vector(3,5)

怎么才能把结果放到一个Vector tuple里: Vector(3,5)

作者头像
前端皮皮
发布2022-08-17 17:10:33
2150
发布2022-08-17 17:10:33
举报
文章被收录于专栏:前端进阶学习交流

大家好,我是皮皮。

一、前言

前几天在Python最强王者交流群有个叫【Chloe】的粉丝问了一个Python基础的问题,这里拿出来给大家分享下,一起学习下。

代码如下:

代码语言:javascript
复制
class Vector:

    def __init__(self, *args):
        self.components = args

    def __repr__(self):
        return f"Vector{self.components}"

    def __str__(self):
        return f'{self.components}'

    def __len__(self):
        return len(self.components)
    
    def __add__(self,other):
        t = tuple(zip(self.components, other.components))
        for i,j in t:
            print(i+j)
    
v1 = Vector(4,2)
v2 = Vector(-1,3)
v1+v2

目前的结果是: 3 5

二、解决过程

这里【瑜亮老师】给出了一个代码,如下所示:

代码语言:javascript
复制
def __add__(self,other):
        t = tuple(zip(self.components, other.components))
        print(tuple(i+j for i,j in t))

不过看上去tuple有些冗余,直接 t = zip(self.components, other.components)因为zip的结果就是tuple类型的。

后来月神又给了一个代码,如下所示:

代码语言:javascript
复制
def __add__(self,other):
        t = map(lambda x,y: x+y, self.components, other.components)
        return Vector(*t)

有人还怀疑题目就是【月神】出的,哈哈哈哈。

结合【月神】和【瑜亮老师】的写法,【Chloe】自己举一反三,写了一份代码,如下所示:

代码语言:javascript
复制
    def __add__(self,other):
        # method1:
        zipped = zip(self.components, other.components)
        t = tuple(i+j for i,j in zipped)
        return Vector(*t)

看来确实是学习到位了!

三、总结

大家好,我是皮皮。这篇文章主要盘点一个Python基础问题,文中针对该问题给出了具体的解析和代码演示,帮助粉丝顺利解决了问题。

最后感谢粉丝【Chloe】提问,感谢【瑜亮老师】、【月神】给出的具体解析和代码演示,感谢粉丝【东哥】、【dcpeng】、【老松鼠】、【炸蛋散】等人参与学习交流。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-04-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python共享之家 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、前言
  • 二、解决过程
  • 三、总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档