了解列表理解内的python嵌套迭代

问题描述 投票:0回答:2

我很难解释列表推导中的嵌套迭代。下面的代码

movie = []
genre = []
for movie_ids in ratings["movie_id"].values:
  movie.append(movie_ids)
  genre.append([x for movie_id in movie_ids for x in genres_dict[movie_id]])

如果我打印genre[0],假设我看到结果[a,b,c]

我从this和互联网上的许多其他人的理解是,我可以代替线路

genre.append([x for movie_id in movie_ids for x in genres_dict[movie_id]])

使用

for movie_id in movie_ids:
    if movie_id in genres_dict:
      genre.append(genres_dict[movie_id])

但是当我打印genre[0]时,结果不同。>

我想念什么?

请提出建议

我很难解释列表推导中的嵌套迭代。下面的代码movie = []风格= []代表等级[“ movie_id”]中的movie_id。值:movie.append(movie_ids)风格....

python list-comprehension
2个回答
3
投票

通过列表理解,您还可以迭代genres_dict[movie_id]的内容。此代码不会完全转换为您提供的for循环,而是转换为


0
投票

列表理解实际上也在迭代内部内容时为您弄平了数组。

© www.soinside.com 2019 - 2024. All rights reserved.