python列表复制而不是连接
python列表复制而不是连接,python,Python,data=[A,B,C],我希望记录会有(A,B,C)。但是它包含(C,C,C)?您使用的不是类属性,而是您偶然定义的全局变量 class Rating(): def __init__(self, user, item, rating): self.user = user self.item = item self.rating = rating def __str__(self): return str(user
data=[A,B,C]
,我希望记录会有(A,B,C)
。但是它包含(C,C,C)
?您使用的不是类属性,而是您偶然定义的全局变量
class Rating():
def __init__(self, user, item, rating):
self.user = user
self.item = item
self.rating = rating
def __str__(self):
return str(user) + " " + str(item) + " " + str(rating)
def __repr__(self):
return str(user) + " " + str(item) + " " + str(rating)
data = open('data.dat').readlines()
records = ()
for i in data:
user, item, rating = i.split()
r = Rating(user, item, rating)
records += (r,)
print records
应该像
return str(user) + " " + str(item) + " " + str(rating)
您使用的不是类属性,而是偶然定义的全局变量
class Rating():
def __init__(self, user, item, rating):
self.user = user
self.item = item
self.rating = rating
def __str__(self):
return str(user) + " " + str(item) + " " + str(rating)
def __repr__(self):
return str(user) + " " + str(item) + " " + str(rating)
data = open('data.dat').readlines()
records = ()
for i in data:
user, item, rating = i.split()
r = Rating(user, item, rating)
records += (r,)
print records
应该像
return str(user) + " " + str(item) + " " + str(rating)
您的类的\uuuu str\uuuu
是引用全局名称:
return str(self.user) + " " + str(self.item) + " " + str(self.rating)
这将是以下内容的最后一次迭代:
def __str__(self):
return str(user) + " " + str(item) + " " + str(rating)
需要将其固定为self.user
,self.item
等
此外,我会将您的线路更改为更高效、更具蟒蛇式:
user, item, rating = i.split()
您的类的\uuuu str\uuuu
是引用全局名称:
return str(self.user) + " " + str(self.item) + " " + str(self.rating)
这将是以下内容的最后一次迭代:
def __str__(self):
return str(user) + " " + str(item) + " " + str(rating)
需要将其固定为self.user
,self.item
等
此外,我会将您的线路更改为更高效、更具蟒蛇式:
user, item, rating = i.split()
tuple
s是不可变的,list
s不是。尝试records=[]
instead@inspectorG4dget我确实尝试过使用列表,但不使用列表不应影响我连接元组的能力。@inspectorG4dget他没有尝试改变元组。类评级
是什么样子的?如果在后为数据中的I打印I
,会发生什么情况:
?在任何情况下,进行元组连接都是低效的。您应该使用list
和list
的append()
方法。tuple
s是不可变的,list
s不是。尝试records=[]
instead@inspectorG4dget我确实尝试过使用列表,但不使用列表不应影响我连接元组的能力。@inspectorG4dget他没有尝试改变元组。类评级
是什么样子的?如果在后为数据中的I打印I
,会发生什么情况:?在任何情况下,进行元组连接都是低效的。您应该使用列表和列表的append()
方法。*line.split()
是什么意思,特别是星号的意思?@user1850672请参阅。*line.split()
是什么意思,特别是星号的意思?@user1850672请参阅。