假设我有一个数据集测试.csv)就像这样:
Name,Fruit,Price
John,Apple,1.00
Steve,Apple,1.00
John,Mango,2.00
Adam,Apple,1.00
Steve,Banana,1.00
尽管有几种更简单的方法可以做到这一点,但我还是想用python将这些信息组织成一个类。因此,理想情况下,类的实例如下所示:
{'name': 'John', 'Fruits': ['Apple','Mango'], 'Price':[1.00, 2.00]}
我将数据集加载到类中的方法是将每个实例存储在一个列表中。你知道吗
class org(object):
def __init__(self,name,fruit,price):
self.name = name
self.fruit = [fruit]
self.price = [price]
classes = []
with open('test.csv') as f:
for line in f:
if not 'Name' in line:
linesp=line.rstrip().split(',')
name = linesp[0]
fruit = linesp[1]
price = linesp[2]
inst = org(name,fruit,price)
classes.append(inst)
for c in classes:
print (c.__dict__)
在这种情况下,如何知道“John”是否已经作为实例存在?
如果是,如何更新“John”?用classmethod?
@classmethod
def update(cls, value):
cls.fruit.append(fruit)
不需要任何特殊的东西来更新实例。类的属性是公共的,所以只需访问它们进行更新。你知道吗
如果您坚持使用列表作为实例容器,您可以这样做:
但是,我建议改用dict,因为它使查找和访问实例更容易
这两种解决方案将为您提供相同的结果:
为了完整起见,下面的注释中@madpysicalist更新dict的笨拙方式可能意味着我使用dict的方法,而不是通过订阅访问条目。你知道吗
我个人觉得这有点难看,所以我倾向于使用以下方法:)
相关问题 更多 >
编程相关推荐