我正在实验课程,这是我第一次应用它们
下面是课堂:
class CreateArray:
def __init__(self):
array = []
self.array = array
print('How many elements?')
ele = int(input())
for j in range(ele):
print('Enter element '+str(j+1))
uin = int(input())
array.append(uin)
print('Array elements are: ')
print(array)
def __len__(self):
return len(self.array)
这是我计划的一部分:
def comparedata(arr1, arr2):
newlist = []
arr1. __len__()
if len(arr1) == len(arr2):
for i in range(len(arr1)):
if arr1[i] > arr2[i]: #indexing error occurs here
newlist.append(arr1[i])
elif arr1[i] < arr2[i]:
newlist.append(arr2[i])
print(newlist)
print('array 1 data: ')
arr1 = CreateArray()
print('array 2 data: ')
arr2 = CreateArray()
print('The two arrays are: ')
print(arr1.array)
print(arr2.array)
print('The greatest elements between the two arrays are: ')
comparedata(arr1,arr2)
我在if arr1[i]>arr2[i]
处得到一个错误:
CreateArray object doesn't support indexing
因此函数调用无法执行
这个问题似乎与这里关于堆栈溢出的一些其他问题重复,但希望下面的示例能有所帮助。注意:我使用的是Python 3.7。底线是您需要实现
Sequence
接口希望下面的示例会有所帮助:
您需要为类编写函数
__getitem__
,以支持arr[i]
语法。例如,如果您查看列表中的文档,您会看到:但是,如果您将比较编写为:
相关问题 更多 >
编程相关推荐