gpt4 book ai didi

python - 在使用 Python 类时遇到问题

转载 作者:行者123 更新时间:2023-11-28 22:47:44 24 4
gpt4 key购买 nike

这是我的任务:

SortedStringBag(initial_list) 创建一个新的排序字符串包对象并给它初始的字符串列表。对列表进行排序。这是您唯一可以排序的时间。

print() 打印列表的所有内容,每行一个。请记住,必须始终对其进行排序。

count(s) 表示字符串 s 在这个包中出现了多少次。如果根本没有找到,则返回 0。

insert(s) 使用 O(n) 算法将字符串 s 插入列表。

提示:要对 Python 列表进行排序,只需执行以下操作:

我的列表.sort()

这是我所做的

class SortedStringBag:
def __init__(self,initial_list):
self.ilist = initial_list.sort()
def __str__(self):
for i in self:
if self[i]<self[i+1]:
print(self[i])
def insert(self, s):
for i in range(len(self.ilist)):
if self[i] > item:
self.insert(i, item)
else:
self.append(s)
def count(self, s):
i = 0
for n in self:
if s in self[n]:
i = i+1

出于某种原因,我无法正确定位它的顶部,但它在我的代码中。

我真的不懂类,不知为何没有方法与类相关联

最佳答案

这里你的主要问题是你混淆了调用 selfself.ilist,给你这样的错误:

>>> import StringBag
>>> mylist = StringBag.SortedStringBag([1, 8, 3, -1, 9, 3, 7, 23 , 6])
>>> print mylist
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "testt.py", line 5, in __str__
for i in self:
TypeError: iteration over non-sequence
>>>

但是,您还有另一个关键错误,即将变量分配给方法的值。方法不返回任何内容,因此尝试分配它们会给你一个 None 的值:

>>> var = [1, 3, 4, 2].sort()
>>> print var
None
>>>

这是您编辑的代码:

class SortedStringBag:
def __init__(self,initial_list):
self.ilist = sorted(initial_list)
def __str__(self):
return '\n'.join([str(item) for item in self.ilist])
def insert(self, s):
for i in range(len(self.ilist)):
if self.ilist[i] > s:
self.ilist.insert(i, s)
break
else:
self.ilist.append(s)
def count(self, s):
i = 0
for n in self.ilist:
if s == n:
i+=1
return i

运行方式:

>>> import StringBag
>>> mylist = StringBag.SortedStringBag([1, 8, 3, -1, 9, 3, 7, 23 , 6])
>>> print mylist
-1
1
3
3
6
7
8
9
23
>>> mylist.count(3)
2
>>> mylist.count(2)
0
>>> mylist.insert(4)
>>> print mylist
-1
1
3
3
4
6
7
8
9
23
>>> mylist.count(4)
1
>>>

关于python - 在使用 Python 类时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25925975/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com