如何将嵌套列表拆分为单独的列表?



我有一个如下列表

[['Norm,Macdonald', '61', '459000'], ['Paul,McCartney', '79', '2789000'], ['Samuel,Hui', '73', '538000']]

对于期望的输出,它将是类似

的东西
[['Norm', 'Macdonald', '61', '459000'], ['Paul', 'McCartney', '79', '2789000'], ['Samuel', 'Hui', '73', '538000']]

我应该如何分割它使它看起来像这样?

我已经尝试使用。split(','),但它会返回一个嵌套的列表在原始列表位置,即

[[['Norm', 'Macdonald'], '61', '459000'], [['Paul', 'McCartney'], '79', '2789000'], [['Samuel', 'Hui'], '73', '538000']]

一种方法是:

l = [['Norm,Macdonald', '61', '459000'], ['Paul,McCartney', '79', '2789000'], ['Samuel,Hui', '73', '538000']]
new_l = [[*x[0].split(","), *x[1:]] for x in l]
print(new_l)

打印

[['Norm', 'Macdonald', '61', '459000'], ['Paul', 'McCartney', '79', '2789000'], ['Samuel', 'Hui', '73', '538000']]

使用joinsplit

my_list = [['Norm,Macdonald', '61', '459000'], ['Paul,McCartney', '79', '2789000'], ['Samuel,Hui', '73', '538000']]
solution = [','.join(i).split(',') for i in my_list]
print(solution)
# output -> [['Norm', 'Macdonald', '61', '459000'], ['Paul', 'McCartney', '79', '2789000'], ['Samuel', 'Hui', '73', '538000']]

您可以尝试使用split

进行列表推导。
new_list = [[item for el in sub for item in el.split(',')] for sub in your_list]
print(new_list )

你可以这样做:

my_list = [['Norm,Macdonald', '61', '459000'], ['Paul,McCartney', '79', '2789000'], ['Samuel,Hui', '73', '538000']]
new_list = []
for l in my_list:
temp = []
for e in l:
temp.extend(e.split(","))
new_list.append(temp)
new_list

的另一种方法:

new_list = [[s for s in item[0].split(',')] + item[1:] for item in my_list]
结果:

[['Norm', 'Macdonald', '61', '459000'],
['Paul', 'McCartney', '79', '2789000'],
['Samuel', 'Hui', '73', '538000']]

可以像第一个函数一样同时使用','.join(the_list)split(',')

第二个函数为嵌套列表中的每个列表运行第一个函数,并用未打包的版本替换内部列表。

def split_all_by(the_list, char):
joined = char.join(the_list)
splitted = joined.split(char)
return splitted

def split_internal_lists_by(the_nested_list, char):
for index in range(len(the_nested_list)):
internal_list = the_nested_list[index]
the_nested_list[index] = split_all_by(internal_list, ',')

return the_nested_list

nested_list = [['Norm,Macdonald', '61', '459000'], ['Paul,McCartney', '79', '2789000'], ['Samuel,Hui', '73', '538000']]
result = split_internal_lists_by(nested_list, ',')
print(result)

最新更新