列表解析式

https://blog.csdn.net/LittleHuang950620/article/details/81774402

之前参考

https://blog.csdn.net/Yolandera/article/details/82847022

写了篇

https://blog.51cto.com/u_16055028/6677954

[i for j in my_list for i in j]  # 压缩成一维列表

2

但是这里有个坑 如果一个由许多一维列表组成的二维列表 则没问题

如果是一个由混杂着字符串和一维列表组成的二维列表 则有问题 字符串被拆成一个个字符了

mylist = ['abc', ['abc']]
[i for j in mylist for i in j]

python list 二维转一维 混杂着字符串和一维列表的情况_bc

3

https://blog.csdn.net/qq_36853469/article/details/106928360

同理 sum(mylist, [])这种妙用法也失败了

python list 二维转一维 混杂着字符串和一维列表的情况_.net_02

4

np.array.flatten

这种方法有效 但是会报警

python list 二维转一维 混杂着字符串和一维列表的情况_字符串_03

5

mylist = ['abc', ['abc']]
my_arr = np.array(mylist)
np.concatenate(my_arr.reshape((-1,1),order="F")).tolist()

有效但报警

python list 二维转一维 混杂着字符串和一维列表的情况_字符串_04

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