Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/350.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,如何声明稍后要追加的空列表数组 我有一个包含如下用户电影数据的文件:UserID::MovieID::Rating::Time,但每个UserID的条目数量可能不同。(例如:UserID=1可能有2个条目,UserID=2可能有5个条目。) 1::1193::5::978300760 1::661::3::978302109 .. 2418::3408::4::978300275 2418::2355::5::978824291 对于每个UserID,声明一个空列表以包含评级(movieid)>

如何声明稍后要追加的空列表数组

我有一个包含如下用户电影数据的文件:UserID::MovieID::Rating::Time,但每个UserID的条目数量可能不同。(例如:UserID=1可能有2个条目,UserID=2可能有5个条目。)

1::1193::5::978300760
1::661::3::978302109
..
2418::3408::4::978300275
2418::2355::5::978824291

对于每个UserID,声明一个空列表以包含评级(movieid)>3


我也尝试了
[[]范围(num\u user\u id)]
,但没有成功。

其中一个选项是使用
dict
,如下所示

num_user_id = 2418
user_adj_list = [None]*num_user_id


path = "/home/Desktop/ml-1m/ratings.dat"
source_file = open(path)


#       line = UserID::MovieID::Rating::Timestauser_adj_list
user_adj_list = dict()
for line in source_file:
        user_id, movie_id, rating, time_stauser_adj_list = line.split("::")
        if user_id not in user_adj_list:
            user_adj_list[user_id] = []
        if int(rating) > 3:
                user_adj_list[int(user_id)-1].append(int(movie_id))

为什么不使用一个以用户ID为键的dict呢?您能扩展一下“它不起作用”吗?我想你的意思是
[[]用于范围内(…)]
。我有“user\u adj\u list=[[[]范围内(num\u user\u id)]”,但抛出了错误“AttributeError:'bool'对象没有属性'append'
num_user_id = 2418
user_adj_list = [None]*num_user_id


path = "/home/Desktop/ml-1m/ratings.dat"
source_file = open(path)


#       line = UserID::MovieID::Rating::Timestauser_adj_list
user_adj_list = dict()
for line in source_file:
        user_id, movie_id, rating, time_stauser_adj_list = line.split("::")
        if user_id not in user_adj_list:
            user_adj_list[user_id] = []
        if int(rating) > 3:
                user_adj_list[int(user_id)-1].append(int(movie_id))