如何声明稍后要附加的空列表数组?
我有一个包含用户电影数据的文件,如下所示: 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,声明一个空列表以包含Rating(MovieIDs)> 3
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::Timestamp
for line in source_file:
user_id, movie_id, rating, time_stamp = line.split("::")
if int(rating) > 3:
user_adj_list[int(user_id)-1].append(int(movie_id))
我也尝试了[[] in range(num_user_id)]
,但它没有用。
答案 0 :(得分:0)
其中一个选项是使用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))