需要从列表中删除无

我在第一行有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'),)] 

我厌倦使用filter:

 a = filter(None, a) 

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

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

所以,如果你修复你的清单,那么它将工作

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

或简而言之:

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

尝试这个:

 while None in a: a.remove(None)