如何结合列表推导式与传统列表定义?解决列表嵌套问题
问题解决:合并列表推导式结果与手动元素
你当前代码的问题是把列表推导式生成的列表当成了单个元素塞进了外层列表,导致最终输出是嵌套结构。
问题根源
代码lst = [[x for x in range(n)], "a", "q", "l", "b", "s"]里,[x for x in range(n)]本身是一个完整的子列表,被作为第一个元素加入外层列表,所以才会出现[[1,2,...], "a", ...]的嵌套结果。
解决方法
要让推导式生成的元素和后面的字母合并成扁平列表,直接用列表加法即可:
# 若期望从1开始生成数值(匹配你给出的示例输出) lst = [x for x in range(1, n+1)] + ["a", "q", "l", "b", "s"]
如果你的数值需要从0开始,就保留原range写法:
lst = [x for x in range(n)] + ["a", "q", "l", "b", "s"]
这样就能得到你想要的[1,2,3,...,"a","q",...]这种无嵌套的扁平列表。
内容的提问来源于stack exchange,提问作者Sam
相关产品推荐
相关产品推荐

