列表的小问题
本帖最后由 qin_yin 于 2020-11-1 22:31 编辑第9行把列表转换成字符,然后返回为什么,输出的时候还是列表,并且列表也没有发生修改,
class Nstr(str):
def __sub__(self, other):
remove_list = list(self)
str_list = remove_list[:]
for i in remove_list:
if i == other:
remove_list.remove(i)
class_ob = str(str_list)
return class_ob
a = Nstr('I love fishciiiiiiiii')
b = Nstr('i')
s = a - b
print(s)
同样的问题第7行删除列表元素,最后输出还是原来的列表
class Nstr(str):
def __sub__(self, other):
remove_list = list(self)
str_list = remove_list[:]
for i in remove_list:
if i == other:
remove_list.remove(i)
class_ob = str(str_list)
return class_ob
a = Nstr('I love fishciiiiiiiii')
b = Nstr('i')
s = a - b
print(s)
发代码,莫要只发图片 wp231957 发表于 2020-11-1 22:27
发代码,莫要只发图片
好吧
你 for 循环 remove_list ,所以 for 循环里移除的应该是 str_list列表而不是 remove_list
而且你最后返回对列表使用 str() 当然只是将列表转为字符串而已,举个小荔枝:
>>> a =
>>> str(a)
'' # 这个就是字符串
class Nstr(str):
def __sub__(self, other):
remove_list = list(self)
str_list = remove_list[:]
for i in remove_list:
if i == other:
str_list.remove(i)
class_ob = ''.join(str_list)
return class_ob
a = Nstr('I love fishciiiiiiiii')
b = Nstr('i')
s = a - b
print(s)
输出结果:
I love fshc
这里应用 join 函数可以将列表中的字符串全部拼接起来
页:
[1]