Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python列表复制而不是连接_Python - Fatal编程技术网

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请参阅。