【发布时间】:2017-09-26 23:11:49
【问题描述】:
我的任务是尝试为 python 重新创建 ArrayList 类型的方法。除了 str 和 repr 函数之外,我已经成功地重新创建了所有内容,但是由于它们的行为基本相同,因此我只需要一个帮助。下面是我的方法代码,但我不断收到类型错误,说明“只能加入可迭代”
def __str__(self):
"""Implements `str(self)`. Returns '[]' if the list is empty, else
returns `str(x)` for all values `x` in this list, separated by commas
and enclosed by square brackets. E.g., for a list containing values
1, 2 and 3, returns '[1, 2, 3]'."""
str= '['
if len(self.data)>0:
for i in range(len(self.data)):
if i ==0:
str1 = str+''.join(self[i])
else:
str1 = str+','+ ''.join(self[i])
return str1+']'
else:
return '[]'
所有这些只有一个问题,那就是我只能调用以下方法来提供帮助,尽管这不应该成为此方法的限制。请帮忙!
方法: lst[i] 用于在现有的正索引 i 处获取和设置值
len(lst) 获取槽数
lst.append(None) 以 %time 将列表增加一个槽
del lst[len(lst)-1] 删除列表中的最后一个槽
【问题讨论】:
-
你认为
''.join是做什么的?你为什么要打电话给''.join(self[i])? -
我的印象是它会添加到字符串中。我正在尝试对数组列表进行字符串化...
-
+添加到字符串。''.join接受一个整个序列的字符串并将它们加在一起。你传递给它一个 int。 -
嗯,所以你说我可以只拥有 str = str + self[i] + ',' 我想错了不是我
-
您需要自己通过在元素上调用
str来对元素进行字符串化(或者至少,您的文档字符串说调用str-repr是通常的选择),并且您只需要+或join之一。join是一个更安全的选择 - 构建一个字符串列表以连接在一起,然后将它们连接起来。+对性能有危险;+很容易得到二次运行时。
标签: python python-3.x arraylist