List comprehension menulis perulangan pembuat list dalam satu baris. Bentuknya adalah kurung siku berisi ekspresi, lalu for, lalu nama variabel dan sumbernya: Python mengambil setiap isi sumber, menghitung ekspresi, lalu menaruh hasilnya di list baru. Bentuk ini menggantikan tiga baris yang terdiri atas list kosong, for, dan append.
harga = [12000, 5000, 30000]
print([h * 2 for h in harga]) # [24000, 10000, 60000]
print([h for h in harga if h >= 12000]) # [12000, 30000]
kode = [" A1 ", "B2 "]
print([k.strip() for k in kode]) # ['A1', 'B2']Menambahkan if di bagian belakang menyaring isi sumber, sehingga hanya yang memenuhi syarat yang masuk ke list hasil. Ekspresi di depan for boleh berupa pemanggilan fungsi atau method, jadi pembersihan satu kolom data sering muat dalam satu baris. Comprehension selalu membuat list baru dan tidak mengubah sumbernya.
Ekspresi di depan for dan penyaring if di belakangnya dipakai bersamaan dalam satu baris: penyaringnya berjalan lebih dulu atas isi sumber, lalu ekspresinya dihitung untuk isi yang lolos saja. Bila ekspresi dan penyaring memerlukan olahan yang sama, olahan itu ditulis dua kali karena comprehension tidak menyimpan hasil antara. Hasilnya selalu list baru dengan urutan yang mengikuti sumbernya.