【发布时间】:2020-01-13 05:17:32
【问题描述】:
这是我要解决的问题。 创建一个名为 apartment 的类,其属性为 flatnumber、所有者名称、电费金额。使用 def init(self):pass 创建另一个类 apartment_demo 以创建一个方法 getSecondMinBill,该方法获取对象列表并给出第二个最小电费作为输出。
Input:3(no.of objects to be created)
1000
Hari
5000
1001
Hena
5002
1002
Harsha
5001
Output:5001
这是我的代码
class apartment:
def __init__(self,flat_no,owner_name,ele_bill):
self.flatnumber=flat_no
self.owner_name=owner_name
self.ele_bill_amount=ele_bill
class apartment_demo(apartment):
def __init__(self):
pass
def get_second_min(self):
list=[]
a=int(input())
for i in range(a):
f=int(input())
o=str(input())
e=int(input())
list.append(apartment(f,o,e))
l=len(list)
#print(self.ele_bill_amount for i in list)
for i in range(0,l):
for j in range(0,l-i-1):
if list[j][2]>list[j+1][2]:
temp=list[j][2]
list[j][2]=list[j+1][2]
list[j+1][2]=temp
print(list[1][2])
#print("Flat no:",self.flatnumber,"Owner
#name:",self.owner_name,"Ele.bill:",self.ele_bill_amount)
a=apartment_demo()
a.get_second_min()
这是我遇到的错误
if list[j][2]>list[j+1][2]:
TypeError: 'apartment' object is not subscriptable
【问题讨论】:
-
list[j]返回您的apartment类的实例;我们称之为apt1。那么当您请求apt1[2]的值时,您希望返回什么?哦,尽量不要将变量命名为与内置变量相同。
标签: python python-3.x