Python列表推导式为何生成嵌套列表?如何用其生成普通列表?
两类列表的差异原因
str.split()方法本身就会返回按分隔符分割后的一维字符串列表:
- 第一行代码
list45 = [input("first line: ").split()]中,你把split()返回的列表外层又额外套了一层[],相当于给原列表新增了一层父级容器,最终得到的就是嵌套列表。 - 第二部分代码中,你直接将
split()返回的列表赋值给list46,没有额外增加外层列表,最终得到的就是普通一维列表。
列表推导式生成普通列表的方法
你只需要通过列表推导式遍历split()返回的每一个元素,逐个存入新列表即可,写法如下:
list45 = [item for item in input("first line: ").split()]
修改后输入my first line,list45的输出结果就是['my', 'first', 'line'],和list46的结构完全一致。
内容的提问来源于stack exchange,提问作者Ionut Hanu
相关产品推荐
相关产品推荐

