Python循环中创建子列表的代码问题及修正需求
问题解决:生成嵌套的邮箱-用户名列表
你的核心问题是循环中没有将每组邮箱和用户名打包成子列表,而是直接逐个追加到主列表,导致输出是扁平结构。只需要调整循环内的追加逻辑,把每组数据封装成子列表再存入结果即可。
修正后的代码
def database(L): result = [] for name in L: username = name[:4] # 截取前4位,和name[0:4]等价,写法更简洁 # 把邮箱和用户名打包成子列表,再添加到结果列表 result.append([f"{name}@gmail.com", username]) return result accounts = database(['Bakerfield', 'Thomas']) print(accounts)
运行后输出:
[['Bakerfield@gmail.com', 'Bake'], ['Thomas@gmail.com', 'Thom']]
更简洁的写法(列表推导式)
如果追求代码简洁,可以用列表推导式一行完成:
def database(L): return [[f"{name}@gmail.com", name[:4]] for name in L]
内容的提问来源于stack exchange,提问作者Zetaio
相关产品推荐
相关产品推荐

