【问题标题】:Python OOP challenge, problem with object and methodPython OOP 挑战,对象和方法的问题
【发布时间】:2021-11-15 02:50:13
【问题描述】:
 class Song:
     def __init__(self, title, artist):
        self.title = title
        self.artist = artist


    def how_many(self, listener):
        print(listener) 
    


obj_1 = Song("Mount Moose", "The Snazzy Moose")
obj_1.how_many(['John', 'Fred', 'Bob', 'Carl', 'RyAn'])
obj_1.how_many(['Luke', 'AmAndA', 'JoHn']) here
 

#监听器内部包含 2 个列表,我所做的任何事情都会产生两个列表,有没有办法 在不更改调用 how_many 的对象的情况下分隔侦听器内的列表 同时方法。 谢谢!!!提前

【问题讨论】:

  • 您能提供所需的输出吗?
  • 我必须数第一波听众,即 5,然后第二波,即 3,不再数约翰,因为他已经在第 1 波中
  • 所以我应该返回 5 和 2

标签: loops oop fundamentals-ts


【解决方案1】:
  • 我不确定第二波中的输入 JoHn 是错字还是您需要将所有输入大写。我认为您需要将其大写。
  • 您可以使用set 来处理多个输入中的删除重复。

示例代码:

class Song:
    def __init__(self, title, artist):
        self.title = title
        self.artist = artist
        self.linstener = set()

    def how_many(self, listener):
        listener = [ele.capitalize() for ele in listener]
        print(len((self.linstener | set(listener)) ^ self.linstener))
        self.linstener.update(listener)
        # print(listener) 

obj_1 = Song("Mount Moose", "The Snazzy Moose")
obj_1.how_many(['John', 'Fred', 'Bob', 'Carl', 'RyAn'])
obj_1.how_many(['Luke', 'AmAndA', 'JoHn'])

结果:

5
2

【讨论】:

  • 该死,这对我来说太复杂了,我无法理解,但是谢谢!我会剖析它并尝试分析它是如何工作的!
  • @NewCoder 如果这个解决方案对你来说太复杂了,我可以提供一个更简单的解决方案。或者你可以尝试学习set,|(加号)和^(减号)。
  • 不,我认为它很完美,我会分析它,以便从中学习一些东西。 :'对不起,我才刚刚开始。
猜你喜欢
  • 2010-12-22
  • 2023-01-11
  • 1970-01-01
  • 2020-12-24
  • 2016-05-28
  • 2021-01-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多