擅长:python、mysql、java
<p>使用<code>counter</code>检查一个列表是否是另一个列表的子集,如下所示。如果要删除空元素,则只需使用<code>None</code>、<code>bool</code>或<code>len</code>来过滤空白并丢弃它们-</p>
<pre><code>import csv
from itertools import repeat
from collections import Counter
input = open(fname, 'rb')
output = open(foutput, 'wb')
writer = csv.writer(output)
#Helper function
def counterSubset(list1, list2):
c1, c2 = Counter(list1), Counter(list2)
for k, n in c1.items():
if n > c2[k]:
return False
return True
for row in csv.reader(input):
if not counterSubset(list(repeat('',5)),row):# i used 5 for five '' you can change it
writer.writerow(row)#use filter(None,row) or filter(bool,row) or filter(len,row) to remove empty elements
input.close()
output.close()
</code></pre>
<p>输出-</p>
<pre><code>1,a,b,c,,
2,a,b,c,d,e,f,g,h
4,a,,z,u,d,i,f,x,h
5,d,c,c,d,c,f,g,z
</code></pre>