检查空列表

时间:2015-05-20 04:07:01

标签: python list

我有以下输出,但我想删除空列表。我怎样才能做到这一点?似乎列表中的单引号似乎在列表中有某些内容。

[{'Segment': {'Price': 305, 'Mw': 13, '@Number': '1'}}]
[{'Segment': {'Price': 258.43, 'Mw': 46.9, '@Number': '1'}}] 
['']
['']
['']

我尝试使用下面的代码,但它没有用。

if not a:   
    print "List is empty"

7 个答案:

答案 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)

您的列表不为空,它包含空字符串。

如果您想检查您的列表是否包含非空的项目,可以使用any

list = [ '' ]
if any(list):
    # List contains non-empty values

或者您可以在使用它删除任何空字符串之前filter

list = [ '' ]
list = filter(None, list) # Remove empty values from list
if list:
    # List contains items