1
列表解析式
https://blog.csdn.net/LittleHuang950620/article/details/81774402
之前参考
写了篇
[i for j in my_list for i in j] # 压缩成一维列表2
但是这里有个坑 如果一个由许多一维列表组成的二维列表 则没问题
如果是一个由混杂着字符串和一维列表组成的二维列表 则有问题 字符串被拆成一个个字符了
mylist = ['abc', ['abc']]
[i for j in mylist for i in j]
3
同理 sum(mylist, [])这种妙用法也失败了

4
np.array.flatten
这种方法有效 但是会报警

5
mylist = ['abc', ['abc']]
my_arr = np.array(mylist)
np.concatenate(my_arr.reshape((-1,1),order="F")).tolist()有效但报警

6
# import operator
# from functools import reduce
mylist = ['abc', ['abc']]
my_arr = np.array(mylist)
reduce(operator.add, my_arr)
# TypeError: can only concatenate str (not "list") to str失败
from itertools import chain
mylist = ['abc', ['abc']]
my_arr = np.array(mylist)
list(chain.from_iterable(my_arr))
# ['a', 'b', 'c', 'abc']同2 字符串被拆成一个个字符了
7
总结
https://blog.csdn.net/qq_36853469/article/details/106928360
mylist = ['abc', ['abc']]
my_arr = np.array(mylist)
my_arr.flatten().tolist()
np.concatenate(my_arr.reshape((-1,1),order="F")).tolist()
这两个有用 但报警
8
自己写了一个 不会报警
其中mylist可转换为
my_arr = np.array(mylist)
代入使用 也有用 就是会出现VisibleDeprecationWarning
mylist = ['abc', ['abc']]
list_new = []
for i in mylist:
if isinstance(i, str):
list_new.append(i)
elif isinstance(i, list):
for j in i:
list_new.append(j) # 此方法只应用到二维混杂列表为止,更高维度需要判断维度再循环,或者使用递归
list_new
















