需要从列表中删除无

时间:2013-12-22 21:41:28

标签: python excel

我在第一行有excel列名。我需要在没有None的情况下阅读它:

a = [Sheet.UsedRange.Rows(1).Value]
[((u'Step', u'Test Case ID', u'Traceability  Ref', u'Test Description', u'Display', u'Test conditions', None, None, None, None, None, u'Test Criteria', u'Delay Time(ms)', u'Capture Time(ms)', u'Automation Type(A/S)', u'Expected Output', None, None, None, u'Actual Output', u'Comments'),)]

我厌倦了使用过滤器:

a = filter(None, a)

我需要删除None(我的Excel中的空列)。

2 个答案:

答案 0 :(得分:10)

您的解决方案的问题在于您的列表本身。如果仔细观察,它不是一个可以过滤的值列表,而是一个列表,只有一个元组,单个元素是另一个元组,然后包含所有值。

因此,如果您修复了列表a,那么它就能正常工作

a = [Sheet.UsedRange.Rows(1).Value]
a = list(filter(None, a[0][0]))

或简而言之:

a = list(filter(None, Sheet.UsedRange.Rows(1).Value[0]))

答案 1 :(得分:2)

试试这个:

while None in a:
    a.remove(None)