有人可以帮我解决这个问题吗
'BANANARAMA'
到
'BANRM'
在Python中? 我已经尝试过了:
def reduceer(woord):
return ''.join(c for c, in list(woord()))
但无法正常工作
答案 0 :(得分:2)
一些pointers:
{
"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()
。TypeError
试图解压长度为1的序列。这将与c,
之类的行一起使用,但没有意义,因为字符(您要对其进行迭代)已具有长度1。c, = 'x'
只会构建一个字符列表。 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