Python嵌套循环迭代错误:如何正确为应用评级添加标签?
解决嵌套列表迭代并添加评级标签的问题
原代码的核心问题
- 迭代对象错误:原代码遍历空列表
app,完全没处理目标列表app_ratings,还在循环里随意修改app的值 - 取值逻辑错误:直接拿整个子列表和数值比较,应该取子列表里的第二个元素(评级数值)来做判断
- 变量名冲突:循环变量用了
app_ratings,直接覆盖了原列表的引用,最后打印的不是修改后的目标列表
正确代码实现
app_ratings = [ ['Facebook', 3.5], ['Notion', 4.0], ['Astropad Standard', 4.5], ['NAVIGON Europe', 3.5] ] # 遍历每个应用的子列表 for app in app_ratings: # 取出当前应用的评级数值 rating = app[1] if rating < 3.0: app.append('below average') elif 3.0 <= rating < 4.0: app.append('roughly average') else: app.append('better than average') print(app_ratings)
代码说明
- 用
app作为循环变量遍历app_ratings,每个app对应一个包含应用名称和评级的子列表 - 通过
app[1]提取评级数值,再根据条件判断给子列表追加对应的标签 - 最后打印的
app_ratings会保留原数据,同时每个子列表末尾都带上了正确的评级标签
内容的提问来源于stack exchange,提问作者Kebasita
相关产品推荐
相关产品推荐

