在 Python 中如何从二维数组中删除多余的 space 元素?
In Python how remove extra space elements from two dimensional array?
例如
list = [['2', '2', '', ''], ['3', '3', '', ''], ['4', '4', '', '']]
我想要
newlist = [['2','2'],['3','3'],['4','4']]
是否有任何列表综合紧凑的方法来实现这一点
像一维数组一样,我们有 [x for x in strings if x]
有没有类似的东西。
我想你的意思是你想从你的 2darray 中删除空元素。如果是这样的话:
old_list = [['2', '2', '', ''], ['3', '3', '', ''], ['4', '4', '', '']]
new_list = [[instance for instance in sublist if len(instance)>0] for sublist in old_list]
如果您希望删除仅包含空格(空格等)的元素,那么您可以这样做:
old_list = [['2', '2', '', ''], ['3', '3', '', ''], ['4', '4', '', '']]
new_list = [[instance for instance in sublist if not instance.isspace()] for sublist in old_list]
list = [[x for x in y if x != ''] for y in list]
您可以使用 filter 实现此目的。同样无关,但由于 list
是一个保留字,最好不要使用它并尝试想出一个更有意义的名称,我只是将它重命名为 original_list 自 list()
方法否则将无法工作。
original_list = [['2', '2', '', ''], ['3', '3', '', ''], ['4', '4', '', '']]
new_list = []
for sub_list in original_list:
new_sub_list = list(filter(None, sub_list))
new_list.append(new_sub_list)
print(new_list)
或者简而言之
new_list2 = [ list(filter(None, sub_list)) for sub_list in original_list ]
print(new_list2)
使用这个列表理解:
list = [[x for x in a if x] for a in list]
例如
list = [['2', '2', '', ''], ['3', '3', '', ''], ['4', '4', '', '']]
我想要
newlist = [['2','2'],['3','3'],['4','4']]
是否有任何列表综合紧凑的方法来实现这一点
像一维数组一样,我们有 [x for x in strings if x]
有没有类似的东西。
我想你的意思是你想从你的 2darray 中删除空元素。如果是这样的话:
old_list = [['2', '2', '', ''], ['3', '3', '', ''], ['4', '4', '', '']]
new_list = [[instance for instance in sublist if len(instance)>0] for sublist in old_list]
如果您希望删除仅包含空格(空格等)的元素,那么您可以这样做:
old_list = [['2', '2', '', ''], ['3', '3', '', ''], ['4', '4', '', '']]
new_list = [[instance for instance in sublist if not instance.isspace()] for sublist in old_list]
list = [[x for x in y if x != ''] for y in list]
您可以使用 filter 实现此目的。同样无关,但由于 list
是一个保留字,最好不要使用它并尝试想出一个更有意义的名称,我只是将它重命名为 original_list 自 list()
方法否则将无法工作。
original_list = [['2', '2', '', ''], ['3', '3', '', ''], ['4', '4', '', '']]
new_list = []
for sub_list in original_list:
new_sub_list = list(filter(None, sub_list))
new_list.append(new_sub_list)
print(new_list)
或者简而言之
new_list2 = [ list(filter(None, sub_list)) for sub_list in original_list ]
print(new_list2)
使用这个列表理解:
list = [[x for x in a if x] for a in list]