How to remove None when iterating through a list in python -
i have 2 unequal lists , i'm using itertools loop through them , i'm trying use filter function remove none generated in list1 @ end of day contains 2 elements instead of 3 (counting none) keep getting error: type error: nonetype object not iterable
import itertools list1 = [['a'],['b']] list2 = ['a','b','c'] l = list(itertools.chain(*list1)) print(l) a, b in itertools.zip_longest((b in list1 b in a),list2): filter(none, a) print(a,b)
not entirely clear want. understand question , comments, want use izip_longest combine lists, without none elements in result.
this filter none zipped 'slices' of lists , print non-none values. note way can not sure whether, e.g., first element in non_none list came first list or second or third.
a = ["1", "2"] b = ["a", "b", "c", "d"] c = ["x", "y", "z"] zipped in izip_longest(a, b, c): non_none = filter(none, zipped) print non_none output:
('1', 'a', 'x') ('2', 'b', 'y') ('c', 'z') ('d',) btw, filter(none, a) does: filters none values a, i.e. strings "a" , "b" (which not much, contain no none values), until fails last value, none not iterable. also, discards result anyway, not bind variable. filter not alter original list, returns filtered copy!