如何将Python单行推导式代码转换为嵌套for in循环?
Python推导式转嵌套for循环教程
核心转换逻辑
推导式转普通嵌套循环时,直接按照推导式里for关键字的出现顺序从外到内写循环结构即可,外层容器先初始化,最内层处理要存入容器的值。
待转换代码1转换结果
原代码是嵌套了集合推导的列表推导:[{a['artist'] for a in n['tracks']} for user in users for n in user['playlists']]
转换后的嵌套循环代码:
# 先初始化外层的结果列表 result = [] # 对应推导式第一个for循环,遍历所有用户 for user in users: # 对应推导式第二个for循环,遍历当前用户的所有歌单 for n in user['playlists']: # 初始化当前歌单对应的歌手集合(对应原代码里的大括号集合推导) artist_set = set() for a in n['tracks']: artist_set.add(a['artist']) # 将生成的歌手集合追加到结果列表 result.append(artist_set)
待转换代码2转换结果
原代码是集合推导:{v['party'] for vp in vps for v in vp['positions']}
转换后的嵌套循环代码:
# 初始化结果集合 result = set() # 对应推导式第一个for循环 for vp in vps: # 对应推导式第二个for循环,遍历当前vp下的所有position for v in vp['positions']: # 集合自动去重,和原推导式效果完全一致 result.add(v['party'])
内容的提问来源于stack exchange,提问作者Olivia
相关产品推荐
相关产品推荐

