Python教程:如何将list嵌套的list的[]去掉

枫铃3年前 (2021-09-30)Python295

比如说

a = [[1,2,3], [5, 2, 8], [7,8,9]]

我们需要将里面的[]去掉,但是又不删除任意元素

如果list里里面的元素是数字,‘1’也是可以的,那么我们可以使用np.ravel

a = [[1,2,3], [5, 2, 8], [7,8,9]]

list(np.ravel(a))
#[1, 2, 3, 5, 2, 8, 7, 8, 9]

或者

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
a = [['1',2,3], [5, 2, 8], [7,8,9]]

list(np.ravel(a))
#['1', '2', '3', '5', '2', '8', '7', '8', '9']

但是下面这种就不可以

a = [[1,2,3],1, [5, 2, 8], [7,8,9]]

list(np.ravel(a))
#[[1, 2, 3], 1, [5, 2, 8], [7, 8, 9]]

使用起来比较严格

反正都是要求元素是list或者是str,但是不能是int

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
from itertools import chain
a = [['1','2','3'],'1']
list(chain(*a))
#['1', '2', '3', '1']  或者是list(chain.from_iterable(a)

实在不行就写个循环语句

func = lambda x: [y for l in x for y in func(l)] if type(x) is list else [x]
func(a)

自定义一个函数

def flat(a):
    l= []
    for i in a:
        if type(i) is list:
            for j in i:
                l.append(j)
        else:
            l.append(i)
    return(l)

flat(a)

相关文章

python中bytes转int的实例

python很多数据都是...

python 两种多线程比较

python 两种多线程比较

首先我是为了把这56w左...

Python基础教程:新式类与经典类

Python基础教程:新式类与经典类

1、新式类 在 py3 里面的继承 object 的类,以及它的子类都是新式类 多继承的情况下,会按照广度优先的方式查找 为...

Python 实用冷门知识整理

Python 实用冷门知识整理

1.print 打印带有颜色的信息 大家知道 Python 中的信息打印函数 print,一般我们会使用它打印一些东西,作为一个...

python中%r和%s的区别

%s用str()方法处理...

python重要函数eval

1.参数会作为一个 Python 表达式(从技术上说是一个条件列表)被解析并求值 >>> x = 1...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。