假设我有一个文件:
apple,1,2,3
banana,1,2
orange,1,2,3
pineapple,1
watermelon,1,2,3
我的代码是:
class Fruit:
def __init__(self,str):
values = str.split(",")
self._name = values[0]
self._list = tuple(values[1:])
fruits = []
for line in file:
fruits.append(Fruit(line))
我认为苹果,橙子和西瓜对象每个都有一个元组,它们彼此相等,但存储在不同的内存位置。如果我有一个类似的文件有100,000多行,并且如果相同顺序的相同内容的元组发生了很多,我将如何最好地优化它,以便当我解析文件时果实将引用相同的内存位置?
更新:
阅读评论,大家都说我应该这样做:
class Fruit:
def __init__(self,name,items):
values = str.split(",")
self._name = name
self._items = items
fruits = []
values_list = []
for line in file:
values = line.split(",")
name = line[0]
values = set(line[1:])
if values in values_list:
fruits.append(Fruit(name,values_list[values_list.index(values)]))
else:
values_list.append(values)
fruits.append(Fruit(name,values))
看起来有点丑......?