如果您只想显示多次显示的字母,如何删除呢?

时间:2018-11-17 11:25:20

标签: python string

有人可以帮我解决这个问题吗

'BANANARAMA'

'BANRM'

在Python中? 我已经尝试过了:

def reduceer(woord):
    return ''.join(c for c, in list(woord()))

但无法正常工作

2 个答案:

答案 0 :(得分:2)

一些pointers

  1. { "a": { "b": { "c": {}, "count_a_b_c": 1 }, "c": {}, "count_a_b_*": 1, "count_a_c": 1 }, "b": {}, "count_a_*": 2, "count_b": 1 } 是不可调用的,因此woord将抛出woord()
  2. TypeError试图解压长度为1的序列。这将与c,之类的行一起使用,但没有意义,因为字符(您要对其进行迭代)已具有长度1。
  3. 您的代码中没有删除重复项的内容,c, = 'x'只会构建一个字符列表。
  4. 除了不删除重复项外,list(my_string)在这里没有任何用处,因为字符串已经可以迭代。

我不会重写您的函数,但这是CPython 3.6(或任何3.7版本)的懒惰方法:

list

答案 1 :(得分:0)

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

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

测试:

print(reducer('BANANARAMA'))

输出:

BANRM