我必须设置一个从给定对象的内容返回字符串的方法。我可以使用数字列表的字符串,但是我的教授希望每个元素之间的分隔符是分号而不是逗号,这很难做到。我尝试使用join函数,但后来我意识到,教授除了追加以及读写索引外,不想使用任何len
或in
之类的列表操作。
我已经尝试将分号连接到字符串,但是,当然,只能将分号连接到字符串的末尾,并且不使用分号分隔每个元素。
这是我的代码
class LinkedList:
def __init__(self, lst=[], size = 0):
self.L = lst
self.size = size
def addLast(self, x):
self.L.append(x)
self.size += 1
def removeFirst(self):
L = self.L
p = L[1:]
return p
def __str__(self):
result = ''
result += str(self.L)
return result
使用它作为测试用例,您可以看到它以[1、2、3]而不是“ [1; 2; 3]”的形式打印出来
lst = LinkedList()
print(lst) # prints []
print(lst.size) # prints 0
lst.addLast(1)
lst.addLast(2)
print(lst.size) # prints 2
lst.addLast(3)
print(lst) # this should print "[1;2;3]"
答案 0 :(得分:0)
使用循环来连接列表元素,在每个列表元素之间附加;
。
def __str__(self):
result = '['
if self.size > 0:
result += str(self.L[0]) # print first element normally
for item in self.L[1:]: # print the rest, preceding each with ';'
result += ';' + str(item)
result += ']'
return result
如果不允许使用for-in
,则可以使用while
循环。
def __str__(self):
result = '['
if self.size > 0:
result += str(self.L[0]) # print first element normally
i = 1
while i < self.size
result += ';' + str(self.L[i])
i += 1
result += ']'
return result