需要从列表中删除无

use*_*942 1 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'),)]
Run Code Online (Sandbox Code Playgroud)

我累了使用过滤器:

a = filter(None, a)
Run Code Online (Sandbox Code Playgroud)

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

pok*_*oke 10

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

因此,如果您修复了列表a,那么它将起作用

a = [Sheet.UsedRange.Rows(1).Value]
a = list(filter(None, a[0][0]))
Run Code Online (Sandbox Code Playgroud)

或者简而言之:

a = list(filter(None, Sheet.UsedRange.Rows(1).Value[0]))
Run Code Online (Sandbox Code Playgroud)

  • 或者只是`a = list(filter(None,Sheet.UsedRange.Rows(1).Value [0]))`以减少垃圾; 最外面的包装器来自`[...]`结构. (2认同)