Python:追加到一个空列表数组

时间:2016-06-12 08:56:19

标签: 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,声明一个空列表以包含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)],但它没有用。

1 个答案:

答案 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))