Python 如果你只想让一封信中的一封显示多次,如何删除它?

Python 如果你只想让一封信中的一封显示多次,如何删除它?,python,string,Python,String,有人能帮我走出这一步吗: 'BANANARAMA' 到 用Python? 我已经试过了: def reduceer(woord): return ''.join(c for c, in list(woord())) 但有几次它不起作用: woord不可调用,因此woord()将抛出TypeError c,正在尝试解包长度为1的序列。这将适用于像c,='x'这样的行,但毫无意义,因为字符(您试图迭代的字符)已经有一个长度 您的代码中没有任何内容可以删除重复项,list(my_strin

有人能帮我走出这一步吗:

'BANANARAMA'

用Python? 我已经试过了:

def reduceer(woord):
    return ''.join(c for c, in list(woord()))
但有几次它不起作用:

  • woord
    不可调用,因此
    woord()
    将抛出
    TypeError
  • c,
    正在尝试解包长度为1的序列。这将适用于像
    c,='x'
    这样的行,但毫无意义,因为字符(您试图迭代的字符)已经有一个长度
  • 您的代码中没有任何内容可以删除重复项,
    list(my_string)
    只会生成一个字符列表
  • 除了不删除重复项之外,
    list
    在这里没有任何用处,因为字符串已经是可编辑的了
  • 我不会重写您的函数,但以下是针对CPython 3.6(或任何3.7版本)的lazy man方法:


    您可以创建一个新列表,只添加一次每个字符(通过检查该列表中是否已包含该字符),然后使用创建一个新字符串

    def reducer(word):
      res = []
      for ch in word:
        if(ch not in res):
          res.append(ch)
      return ''.join(res)
    
    测试它:

    print(reducer('BANANARAMA'))
    
    输出:

    BANRM
    
    print(reducer('BANANARAMA'))
    
    BANRM