Saya punya daftar dengan sublist di dalamnya. Saya ingin mencetak semua sublist dengan panjang sama dengan 3.
Saya melakukan hal berikut dengan python:
for x in values[:]:
if len(x) == 3:
print(x)
values
adalah daftar asli. Apakah kode di atas mencetak setiap sublist dengan panjang sama dengan 3 untuk setiap nilai x
? Saya ingin menampilkan sub daftar di mana length == 3
hanya sekali.
Masalah terpecahkan. Masalahnya adalah dengan editor Eclipse. Saya tidak mengerti alasannya, tetapi hanya menampilkan setengah dari daftar saya ketika saya menjalankan loop saya.
Apakah ada pengaturan yang harus saya ubah di Eclipse?
print values
dan menunjukkan hasilnya di sini? edit: atau cukup periksa bahwa itu tidak kosong.Jawaban:
Coba ini,
x in mylist
lebih baik dan lebih mudah dibaca daripadax in mylist[:]
dan Andalen(x)
harus sama dengan3
.atau jika Anda membutuhkan lebih banyak pythonic gunakan daftar-pemahaman
sumber
Anda sebaiknya menggunakan
for x in values
daripadafor x in values[:]
; yang terakhir membuat salinan yang tidak perlu. Juga, tentu saja kode itu memeriksa untuk panjang 2 daripada 3 ...Kode hanya mencetak satu item per nilai
x
- danx
mengulangi elemen-elemen darivalues
, yang merupakan sublists. Jadi hanya akan mencetak setiap sublist sekali.sumber
values
.Inilah solusi yang saya cari. Jika Anda ingin membuat List2 yang berisi perbedaan elemen angka di List1.
Perhatikan bahwa sementara
len(list1)
adalah 11 (elemen),len(list2)
hanya akan menjadi 10 elemen karena kita mulai untuk loop kita dari elemen dengan indeks 1 di list1 bukan dari elemen dengan indeks 0 di list1sumber
Lakukan ini sebagai gantinya:
sumber