把这个列表
[[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))
若有帮忙,麻烦采纳,谢谢
如果是多层列表嵌套,要用递归判断列表中元素也是列表就逐层展开
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],[])
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