Filtrowanie listy na podstawie listy wartości logicznych

| |

Mam listę wartości, które muszę filtrować, biorąc pod uwagę wartości z listy wartości logicznych:

list_a = [1, 2, 4, 6] filter = [True, False , True, False] 

Generuję nową filtrowaną listę z następującym wierszem:

filtered_list = [i for indx,i in enumerate(list_a) if filter[indx] == True] 

co powoduje:

print filter_list [1,4] 

Linia działa, ale wygląda (dla mnie) trochę przesadnie i zastanawiałem się, czy istnieje prostszy sposób na osiągnięcie tego samego.


Porady

Podsumowanie dwóch dobre rady podane w poniższych odpowiedziach:

1- Nie nazywaj listy filtrem tak jak ja, ponieważ jest to funkcja wbudowana.

2- Nie porównuj rzeczy z True, tak jak zrobiłem to z if filter[idx]==True.., ponieważ nie jest to konieczne. Po prostu użyj if filter [idx] wystarczy.

Shop

Learn programming in R: courses

$

Best Python online courses for 2022

$

Best laptop for Fortnite

$

Best laptop for Excel

$

Best laptop for Solidworks

$

Best laptop for Roblox

$

Best computer for crypto mining

$

Best laptop for Sims 4

$

Latest questions

NUMPYNUMPY

psycopg2: insert multiple rows with one query

12 answers

NUMPYNUMPY

How to convert Nonetype to int or string?

12 answers

NUMPYNUMPY

How to specify multiple return types using type-hints

12 answers

NUMPYNUMPY

Javascript Error: IPython is not defined in JupyterLab

12 answers

News


Wiki

Python OpenCV | cv2.putText () method

numpy.arctan2 () in Python

Python | os.path.realpath () method

Python OpenCV | cv2.circle () method

Python OpenCV cv2.cvtColor () method

Python - Move item to the end of the list

time.perf_counter () function in Python

Check if one list is a subset of another in Python

Python os.path.join () method