python 列表转换如何操作

把这个列表
[[1681.5203638859368, -2555.3381688192476, 1823.9999739568066], [826.6011783912925, -772.7587462296909, 1479.000146539835], 100]
转换成
[1681.5203638859368, -2555.3381688192476, 1823.9999739568066, 826.6011783912925, -772.7587462296909, 1479.000146539835, 100]

若list里面包含多层的list,前面的代码都有问题,可以参考我的实现

ret_list = []


def expand_list(list1):
    for li in list1:
        if isinstance(li, list):
            expand_list(li)
        else:
            ret_list.append(li)
    return ret_list


print(expand_list(li1))

img

若有帮忙,麻烦采纳,谢谢

如果是多层列表嵌套,要用递归判断列表中元素也是列表就逐层展开

def flatten_list(li):
    for v in range(len(li)-1,-1,-1):
        if isinstance(li[v],list):
            flatten_list(li[v])
            li[v:v+1] = li[v]

a=[[1681.5203638859368, -2555.3381688192476, 1823.9999739568066], [826.6011783912925, -772.7587462296909, 1479.000146539835], 100]
flatten_list(a)
print(a)

# 多层列表
a=[[1,[2,3]],4,[5,[6,[7,8],9]]]
flatten_list(a)
print(a)

a=[[1681.5203638859368, -2555.3381688192476, 1823.9999739568066], [826.6011783912925, -772.7587462296909, 1479.000146539835], 100]
b=[]
for i in a:
    if isinstance (i,int):
        b.append(i)
    else:
        for j in i:
            b.append(j)
print(b)
a=[[1681.5203638859368, -2555.3381688192476, 1823.9999739568066], [826.6011783912925, -772.7587462296909, 1479.000146539835], 100]
b=[]
for x in a:
    if type(x) is list:
        for y in x:
            b.append(y)
    else:
        b.append(x)

l =  [[1681.5203638859368, -2555.3381688192476, 1823.9999739568066], [826.6011783912925, -772.7587462296909, 1479.000146539835], 100]

l = l[0] + l[1]
print(l)

sum([[i] if type(i)!=list else i for i in a],[])

img

def exchange_list(attr):
    result = []
    for item in attr:
        if isinstance(item, list):
            for item2 in item:
                result.append(item2)
        else:
            result.append(item)
    return result