Python: Print List Items Not in Separate Index List -
i have 2 lists: list = ["a","b","c","d"]
i_to_skip = [0,2]
i'd print in list
except indices in i_to_skip
. i've tried following, returns generator object:
print(x x in list if x not in i_to_skip)
the reason comprehension work x
value, "a"
, not index, 0
, , of course of study "a"
not in [0, 2]
.
to index along value, need enumerate
. can this:
print([x i, x in enumerate(list) if not in i_to_skip])
also, note printing generator look (as did) going print <generator object <genexpr> @ 0x1055fd8b8>
; that's why converted code printing out list comprehension, ['b', 'd']
instead.
if instead wanted print, say, 1 line @ time, loop on generator expression:
for x in (x i, x in enumerate(list) if not in i_to_skip): print(x)
but really, it's easier collapse single loop:
for i, x in emumerate(list): if not in i_to_skip: print(x)
or, simpler, format whole thing in single expression, maybe this:
print('\n'.join(x i, x in enumerate(list) if not in i_to_skip))
… or allow print
you:
print(*(x i, x in enumerate(list) if not in i_to_skip), sep='\n')
finally, side note, calling list list
bad idea; hides type/constructor function, may want utilize later on, , makes code misleading.
python list
No comments:
Post a Comment