On 5/31/2020 12:24 PM, Evan Schalton wrote:

I'm less strictly interested in the & operator explicitly working with a bit 
int, but think it'd be great if the was a built-in filter something like:

[1,2,3,4] & [0,0,1,1] => [3,4] OR
[1,2,3,4] & [False, False, True, True] = [3,4]

Leaving numpy aside, Python already has very flexible map and filter functions, and comprehensions encompassing both, that easily do both what *you* want:

>>> list(map(lambda x: x[0], filter(lambda x: x[1], zip([1,2,3,4], [0,0,1,1]))))
[3, 4]
>>> [x[0] for x in zip([1,2,3,4], [0,0,1,1]) if x[1]]
[3, 4]
# This illustrates why comprehensions were added.

and an infinity of related operations, that *others* may want or can imagine, such as:

>>> ''.join(c[1] for c in enumerate('every third char') if not c[0] % 3)
'ertrcr'

Python 3, even more than Python 2, is designed to work with generic sequences and streams rather than just lists. We would only add a specific list function if the function is specific to lists, and filtering a sequence of items according to a sequence of values treated as boolean values is definitely not. Please drop the idea.

--
Terry Jan Reedy

--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to