我有以下输出,但我想删除空列表。我怎样才能做到这一点?似乎列表中的单引号似乎在列表中有某些内容。
[{'Segment': {'Price': 305, 'Mw': 13, '@Number': '1'}}]
[{'Segment': {'Price': 258.43, 'Mw': 46.9, '@Number': '1'}}]
['']
['']
['']
我尝试使用下面的代码,但它没有用。
if not a:
print "List is empty"
答案 0 :(得分:2)
你所拥有的是一个带有空字符串的单个条目的列表。它不是一个空列表。 Best way to check if a list is empty是检查空列表的正确方法。
如果您想检查['']只需执行
if a == ['']:
答案 1 :(得分:2)
您的列表不为空,它上面有一个空字符串。您可以使用''.join
并按答案检查:
if not ''.join(a):
do your thing
如果你的列表肯定只有空字符串,我想你也可以使用any
。
if any(a):
do your thing
答案 2 :(得分:0)
if ''.join(out[0]) != "":
return out
答案 3 :(得分:0)
Python将空字符串计为字符串。如果需要,可以使用正则表达式,或仅使用:
if list[0] != '':
print(list)
根据需要将该条件插入For循环。
答案 4 :(得分:0)
这是你想要的吗?
old_list=[[{'Segment': {'Price': 305, 'Mw': 13, '@Number': '1'}}],
[{'Segment': {'Price': 258.43, 'Mw': 46.9, '@Number': '1'}}], [''], ['']]
new_list = []
for i in old_list:
if i != ['']:
new_list.append(i)
print new_list
[[{'Segment': {'Price': 305, '@Number': '1', 'Mw': 13}}], [{'Segment': {'Price': 258.43, '@Number': '1', 'Mw': 46.9}}]]
答案 5 :(得分:0)
我可以尝试这种方式:
>>> def is_empty(ls):
... if all([not len(ls), not ls]):
... print "List is empty"
... else:
... print "List is not empty"
...
>>> is_empty([])
List is empty
>>> is_empty([""])
List is not empty
>>> is_empty([{'Segment': {'Price': 305, 'Mw': 13, '@Number': '1'}}])
List is not empty
>>>
答案 6 :(得分:0)