Daftar bersarang adalah daftar yang muncul sebagai elemen dalam daftar lain. Dalam daftar ini, elemen dengan indeks 3 adalah daftar bersarang. Jika kita mencetak(_______ 171 _______), kita mendapatkan _______ 172 _______. Untuk mengekstrak elemen dari daftar bersarang, kita dapat melanjutkan dalam dua langkah. Pertama, ekstrak daftar bersarang, lalu ekstrak item yang diinginkan. Dimungkinkan juga untuk menggabungkan langkah-langkah tersebut menggunakan operator braket yang mengevaluasi dari kiri ke kanan
Periksa pemahaman Anda
- 6
- 6 ada di daftar yang salah. alist[1] mengacu pada item kedua dalam daftar, yaitu [888.999]
- 8
- 8 ada di daftar yang salah. alist[1] mengacu pada item kedua dalam daftar, yaitu [888.999]
- 888
- Ya, alist[0][1][0] adalah True dan alist[1] adalah daftar kedua, item pertama adalah 888
- 999
- alist[0][1][0] Benar. Perhatikan lagi pernyataan if
Apa yang dicetak oleh pernyataan berikut?
alist = [ [4, [True, False], 6, 8], [888, 999] ] if alist[0][1][0]: print(alist[1][0]) else: print(alist[1][1])
Anda telah mencoba aktivitas di halaman ini
# Python3 code to demonstrate working of1# Python3 code to demonstrate working of7 # Extract selective keys' values [ Including Nested Keys ]1 # Extract selective keys' values [ Including Nested Keys ]2# Python3 code to demonstrate working of2 # Extract selective keys' values [ Including Nested Keys ]4 # Extract selective keys' values [ Including Nested Keys ]_________________17171717175175_________________________________________________________________________________________________________________________________________________________________________________________________________________________________
# Using recursion + loop + yield_1
# Using recursion + loop + yield2# Using recursion + loop + yield3 # Using recursion + loop + yield4# Using recursion + loop + yield5# Using recursion + loop + yield6# Using recursion + loop + yield7# Using recursion + loop + yield6# Using recursion + loop + yield9 def0def1def2def3# Using recursion + loop + yield6def5 def0def7def8def9def0get_vals(test_dict, key_list):1get_vals(test_dict, key_list):2
Diberikan daftar daftar, tulis program Python untuk mengekstrak elemen pertama dari setiap subdaftar dalam daftar daftar yang diberikan. Contoh
Input : [[1, 2], [3, 4, 5], [6, 7, 8, 9]] Output : [1, 3, 6] Input : [['x', 'y', 'z'], ['m'], ['a', 'b'], ['u', 'v']] Output : ['x', 'm', 'a', 'u']_Pendekatan #1. Daftar pemahaman
Python3
# Python3 program to extract first and last
# element of each sublist in a list of lists
def Extract(lst):
[1, 3, 6]0 [1, 3, 6]1[1, 3, 6]2[1, 3, 6]3[1, 3, 6]4 [1, 3, 6]5[1, 3, 6]6 [1, 3, 6]7
[1, 3, 6]_9
[1, 3, 6]0[1, 3, 6]1 [1, 3, 6]2[1, 3, 6]3[1, 3, 6]4[1, 3, 6]5[1, 3, 6]6[1, 3, 6]7[1, 3, 6]4[1, 3, 6]9[1, 3, 6]4[1, 3, 6]1[1, 3, 6]6[1, 3, 6]3[1, 3, 6]4[1, 3, 6]5[1, 3, 6]4[1, 3, 6]7[1, 3, 6]4[1, 3, 6]9[1, 3, 6] 0
Bab ini diambil dari buku A Primer on Scientific Programming with Python oleh H. P. Langtangen, edisi ke-5, Springer, 2016
Daftar bersarang adalah objek daftar di mana elemen dalam daftar dapat berupa daftar itu sendiri. Beberapa contoh akan memotivasi daftar bersarang dan mengilustrasikan operasi dasar pada daftar tersebut
Tabel sebagai daftar baris atau kolom
Data tabel kami sejauh ini menggunakan satu daftar terpisah untuk setiap kolom. Jika ada \( n \) kolom, kita perlu \( n \) daftar objek untuk mewakili data dalam tabel. Namun, kami menganggap tabel sebagai satu entitas, bukan kumpulan kolom \( n \). Oleh karena itu wajar untuk menggunakan satu argumen untuk seluruh tabel. Ini mudah dicapai dengan menggunakan daftar bersarang, di mana setiap entri dalam daftar adalah daftar itu sendiri. Objek tabel, misalnya, adalah daftar daftar, baik daftar elemen baris tabel atau daftar elemen kolom tabel. Berikut adalah contoh di mana tabel adalah daftar dua kolom, dan setiap kolom adalah daftar angka
Cdegrees = range(-20, 41, 5) # -20, -15, ..., 35, 40 Fdegrees = [(9.0/5)*C + 32 for C in Cdegrees] table = [Cdegrees, Fdegrees] _(Perhatikan bahwa nilai apa pun dalam \( [41,45] \) dapat digunakan sebagai argumen kedua (nilai berhenti) untuk table = [[C, F] for C, F in zip(Cdegrees, Fdegrees)] 6 dan akan memastikan bahwa 40 termasuk dalam rentang angka yang dihasilkan. )Dengan subskrip table = [[C, F] for C, F in zip(Cdegrees, Fdegrees)] 7 kita dapat mengakses elemen pertama di table = [[C, F] for C, F in zip(Cdegrees, Fdegrees)] 8, yang tidak lain adalah daftar table = [[C, F] for C, F in zip(Cdegrees, Fdegrees)] 9, dan dengan [[-20, -4.0], [-15, 5.0], [-10, 14.0], ............., [40, 104.0]] 0 kita mencapai elemen ketiga di elemen pertama, i. e. , [[-20, -4.0], [-15, 5.0], [-10, 14.0], ............., [40, 104.0]] _1
Gambar 2. Dua cara membuat tabel sebagai daftar bersarang. Kiri. tabel kolom [[-20, -4.0], [-15, 5.0], [-10, 14.0], ............., [40, 104.0]] 2 dan [[-20, -4.0], [-15, 5.0], [-10, 14.0], ............., [40, 104.0]] 3, di mana [[-20, -4.0], [-15, 5.0], [-10, 14.0], ............., [40, 104.0]] 2 dan [[-20, -4.0], [-15, 5.0], [-10, 14.0], ............., [40, 104.0]] 3 adalah daftar. Benar. tabel baris, di mana setiap baris [[-20, -4.0], [-15, 5.0], [-10, 14.0], ............., [40, 104.0]] 6 adalah daftar dua pelampung
Namun, data tabular dengan baris dan kolom biasanya memiliki konvensi bahwa data yang mendasarinya adalah daftar bersarang di mana indeks pertama menghitung baris dan indeks kedua menghitung kolom. Untuk memiliki table = [[C, F] for C, F in zip(Cdegrees, Fdegrees)] _8 pada formulir ini, kita harus membuat table = [[C, F] for C, F in zip(Cdegrees, Fdegrees)] 8 sebagai daftar [[-20, -4.0], [-15, 5.0], [-10, 14.0], ............., [40, 104.0]] 6 pasang. Indeks pertama kemudian akan melewati baris [[-20, -4.0], [-15, 5.0], [-10, 14.0], ............., [40, 104.0]] 6. Inilah cara kami membuat daftar bersarang
table = [] for C, F in zip(Cdegrees, Fdegrees): table.append([C, F]) Kami dapat mempersingkat segmen kode ini dengan memperkenalkan pemahaman daftar. table = [[C, F] for C, F in zip(Cdegrees, Fdegrees)] Konstruksi ini melewati pasangan [[-20, -4.0], [-15, 5.0], [-10, 14.0], ............., [40, 104.0]] 2 dan [[-20, -4.0], [-15, 5.0], [-10, 14.0], ............., [40, 104.0]] 3, dan untuk setiap lintasan dalam loop kita membuat elemen daftar [[-20, -4.0], [-15, 5.0], [-10, 14.0], ............., [40, 104.0]] 6Subskrip import pprint pprint.pprint(table) 4 mengacu pada elemen kedua di table = [[C, F] for C, F in zip(Cdegrees, Fdegrees)] 8, yang merupakan pasangan [[-20, -4.0], [-15, 5.0], [-10, 14.0], ............., [40, 104.0]] 6, sedangkan import pprint pprint.pprint(table) 7 adalah nilai [[-20, -4.0], [-15, 5.0], [-10, 14.0], ............., [40, 104.0]] 2 dan import pprint pprint.pprint(table) 9 adalah nilai [[-20, -4.0], [-15, 5.0], [-10, 14.0], ............., [40, 104.0]] 3. Gambar mengilustrasikan daftar kolom dan daftar pasangan. Dengan menggunakan gambar ini, Anda dapat menyadari bahwa indeks pertama mencari elemen di daftar terluar, dan elemen ini dapat diindeks dengan indeks kedua.
Mencetak objek
Modul untuk cetakan objek yang cantik
Kami dapat menulis [[-20, -4.0], [-15, 5.0], [-10, 14.0], [-5, 23.0], [0, 32.0], [5, 41.0], [10, 50.0], [15, 59.0], [20, 68.0], [25, 77.0], [30, 86.0], [35, 95.0], [40, 104.0]] _1 untuk segera melihat daftar bersarang table = [[C, F] for C, F in zip(Cdegrees, Fdegrees)] 8 dari bagian sebelumnya. Faktanya, objek Python apa pun [[-20, -4.0], [-15, 5.0], [-10, 14.0], [-5, 23.0], [0, 32.0], [5, 41.0], [10, 50.0], [15, 59.0], [20, 68.0], [25, 77.0], [30, 86.0], [35, 95.0], [40, 104.0]] _3 dapat dicetak ke layar dengan perintah [[-20, -4.0], [-15, 5.0], [-10, 14.0], [-5, 23.0], [0, 32.0], [5, 41.0], [10, 50.0], [15, 59.0], [20, 68.0], [25, 77.0], [30, 86.0], [35, 95.0], [40, 104.0]] 4. Outputnya biasanya satu baris, dan baris ini bisa menjadi sangat panjang jika daftarnya memiliki banyak elemen. Misalnya, daftar panjang seperti variabel table = [[C, F] for C, F in zip(Cdegrees, Fdegrees)] _8 kami, membutuhkan garis yang cukup panjang saat dicetak
[[-20, -4.0], [-15, 5.0], [-10, 14.0], ............., [40, 104.0]]Memisahkan keluaran menjadi beberapa baris yang lebih pendek membuat tata letak lebih bagus dan lebih mudah dibaca. Modul [[-20, -4.0], [-15, 5.0], [-10, 14.0], [-5, 23.0], [0, 32.0], [5, 41.0], [10, 50.0], [15, 59.0], [20, 68.0], [25, 77.0], [30, 86.0], [35, 95.0], [40, 104.0]] _6 menawarkan fungsionalitas cetak yang cantik untuk tujuan ini. Penggunaan [[-20, -4.0], [-15, 5.0], [-10, 14.0], [-5, 23.0], [0, 32.0], [5, 41.0], [10, 50.0], [15, 59.0], [20, 68.0], [25, 77.0], [30, 86.0], [35, 95.0], [40, 104.0]] _6 terlihat seperti
import pprint pprint.pprint(table) dan output yang sesuai menjadi[[-20, -4.0], [-15, 5.0], [-10, 14.0], [-5, 23.0], [0, 32.0], [5, 41.0], [10, 50.0], [15, 59.0], [20, 68.0], [25, 77.0], [30, 86.0], [35, 95.0], [40, 104.0]] Dengan dokumen ini muncul modul [[-20, -4.0], [-15, 5.0], [-10, 14.0], [-5, 23.0], [0, 32.0], [5, 41.0], [10, 50.0], [15, 59.0], [20, 68.0], [25, 77.0], [30, 86.0], [35, 95.0], [40, 104.0]] 6 yang sedikit dimodifikasi dengan nama [[-20, -4.0], [-15, 5.0], [-10, 14.0], [-5, 23.0], [0, 32.0], [5, 41.0], [10, 50.0], [15, 59.0], [20, 68.0], [25, 77.0], [30, 86.0], [35, 95.0], [40, 104.0]] 9. Modul ini memungkinkan kontrol format penuh pencetakan >>> import pprint, scitools.pprint2 >>> somelist = [15.8, [0.2, 1.7]] >>> pprint.pprint(somelist) [15.800000000000001, [0.20000000000000001, 1.7]] >>> scitools.pprint2.pprint(somelist) [15.8, [0.2, 1.7]] >>> # default output is '%g', change this to >>> scitools.pprint2.float_format = '%.2e' >>> scitools.pprint2.pprint(somelist) [1.58e+01, [2.00e-01, 1.70e+00]] 0 objek dalam daftar dengan menentukan >>> import pprint, scitools.pprint2 >>> somelist = [15.8, [0.2, 1.7]] >>> pprint.pprint(somelist) [15.800000000000001, [0.20000000000000001, 1.7]] >>> scitools.pprint2.pprint(somelist) [15.8, [0.2, 1.7]] >>> # default output is '%g', change this to >>> scitools.pprint2.float_format = '%.2e' >>> scitools.pprint2.pprint(somelist) [1.58e+01, [2.00e-01, 1.70e+00]] 1 sebagai string format printf. Contoh berikut menunjukkan bagaimana format keluaran bilangan real dapat diubah. >>> import pprint, scitools.pprint2 >>> somelist = [15.8, [0.2, 1.7]] >>> pprint.pprint(somelist) [15.800000000000001, [0.20000000000000001, 1.7]] >>> scitools.pprint2.pprint(somelist) [15.8, [0.2, 1.7]] >>> # default output is '%g', change this to >>> scitools.pprint2.float_format = '%.2e' >>> scitools.pprint2.pprint(somelist) [1.58e+01, [2.00e-01, 1.70e+00]] Seperti yang bisa dilihat dari sesi ini, modul [[-20, -4.0], [-15, 5.0], [-10, 14.0], [-5, 23.0], [0, 32.0], [5, 41.0], [10, 50.0], [15, 59.0], [20, 68.0], [25, 77.0], [30, 86.0], [35, 95.0], [40, 104.0]] 6 menulis bilangan floating-point dengan banyak digit, bahkan begitu banyak sehingga kita secara eksplisit melihat kesalahan pembulatan. Banyak yang menganggap jenis keluaran ini mengganggu dan bahwa keluaran default dari modul [[-20, -4.0], [-15, 5.0], [-10, 14.0], [-5, 23.0], [0, 32.0], [5, 41.0], [10, 50.0], [15, 59.0], [20, 68.0], [25, 77.0], [30, 86.0], [35, 95.0], [40, 104.0]] 9 lebih seperti yang diinginkan dan diharapkanModul ________60______6 dan [[-20, -4.0], [-15, 5.0], [-10, 14.0], [-5, 23.0], [0, 32.0], [5, 41.0], [10, 50.0], [15, 59.0], [20, 68.0], [25, 77.0], [30, 86.0], [35, 95.0], [40, 104.0]] 9 juga memiliki fungsi >>> import pprint, scitools.pprint2 >>> somelist = [15.8, [0.2, 1.7]] >>> pprint.pprint(somelist) [15.800000000000001, [0.20000000000000001, 1.7]] >>> scitools.pprint2.pprint(somelist) [15.8, [0.2, 1.7]] >>> # default output is '%g', change this to >>> scitools.pprint2.float_format = '%.2e' >>> scitools.pprint2.pprint(somelist) [1.58e+01, [2.00e-01, 1.70e+00]] 6, yang berfungsi sebagai fungsi [[-20, -4.0], [-15, 5.0], [-10, 14.0], [-5, 23.0], [0, 32.0], [5, 41.0], [10, 50.0], [15, 59.0], [20, 68.0], [25, 77.0], [30, 86.0], [35, 95.0], [40, 104.0]] 6, tetapi mengembalikan string yang diformat cantik alih-alih mencetak string
s = pprint.pformat(somelist) print s Pernyataan >>> import pprint, scitools.pprint2 >>> somelist = [15.8, [0.2, 1.7]] >>> pprint.pprint(somelist) [15.800000000000001, [0.20000000000000001, 1.7]] >>> scitools.pprint2.pprint(somelist) [15.8, [0.2, 1.7]] >>> # default output is '%g', change this to >>> scitools.pprint2.float_format = '%.2e' >>> scitools.pprint2.pprint(somelist) [1.58e+01, [2.00e-01, 1.70e+00]] 8 terakhir ini dicetak sama dengan >>> import pprint, scitools.pprint2 >>> somelist = [15.8, [0.2, 1.7]] >>> pprint.pprint(somelist) [15.800000000000001, [0.20000000000000001, 1.7]] >>> scitools.pprint2.pprint(somelist) [15.8, [0.2, 1.7]] >>> # default output is '%g', change this to >>> scitools.pprint2.float_format = '%.2e' >>> scitools.pprint2.pprint(somelist) [1.58e+01, [2.00e-01, 1.70e+00]] 9Pencetakan manual
Banyak yang akan berpendapat bahwa data tabular seperti yang disimpan dalam daftar table = [[C, F] for C, F in zip(Cdegrees, Fdegrees)] 8 bersarang tidak dicetak dengan cara yang sangat cantik oleh modul [[-20, -4.0], [-15, 5.0], [-10, 14.0], [-5, 23.0], [0, 32.0], [5, 41.0], [10, 50.0], [15, 59.0], [20, 68.0], [25, 77.0], [30, 86.0], [35, 95.0], [40, 104.0]] 6. Orang lebih suka mengharapkan hasil yang cantik menjadi tabel dengan dua kolom yang disejajarkan dengan baik. Untuk menghasilkan keluaran seperti itu, kita perlu mengkodekan pemformatan secara manual. Ini cukup mudah. kita mengulang setiap baris, mengekstrak dua elemen [[-20, -4.0], [-15, 5.0], [-10, 14.0], ............., [40, 104.0]] 2 dan [[-20, -4.0], [-15, 5.0], [-10, 14.0], ............., [40, 104.0]] 3 di setiap baris, dan mencetaknya di bidang dengan lebar tetap menggunakan sintaks printf. Kode berjalan sebagai berikut
for C, F in table: print '%5d %5.1f' % (C, F)Mengekstrak sublist
Python memiliki sintaks yang bagus untuk mengekstraksi bagian dari struktur daftar. Bagian seperti itu dikenal sebagai sublist atau irisan
s = pprint.pformat(somelist) print s _4 adalah sublist yang dimulai dengan indeks s = pprint.pformat(somelist) print s 5 di s = pprint.pformat(somelist) print s 6 dan berlanjut hingga akhir s = pprint.pformat(somelist) print s 6
Dalam daftar bersarang, kami dapat menggunakan irisan di indeks pertama, mis. g. ,
table = [] for C, F in zip(Cdegrees, Fdegrees): table.append([C, F]) _3Kita juga bisa mengiris indeks kedua, atau kedua indeks. table = [] for C, F in zip(Cdegrees, Fdegrees): table.append([C, F]) _4Perhatikan bahwa for C, F in table: print '%5d %5.1f' % (C, F) 9 membuat daftar >>> A = [2, 3.5, 8, 10] >>> A[2:] [8, 10] 0 dengan tiga elemen. Slice >>> A = [2, 3.5, 8, 10] >>> A[2:] [8, 10] 1 bekerja pada sublist ini dan memilih dua elemen pertamanya, dengan indeks 0 dan 1Subdaftar selalu merupakan salinan dari daftar asli, jadi jika Anda memodifikasi subdaftar, daftar asli tetap tidak berubah dan sebaliknya
table = [] for C, F in zip(Cdegrees, Fdegrees): table.append([C, F]) 5Fakta bahwa mengiris membuat salinan juga dapat diilustrasikan dengan kode berikut. table = [] for C, F in zip(Cdegrees, Fdegrees): table.append([C, F]) 6Ekspresi boolean >>> A = [2, 3.5, 8, 10] >>> A[2:] [8, 10] 2 adalah >>> A = [2, 3.5, 8, 10] >>> A[2:] [8, 10] 3 jika semua elemen di >>> A = [2, 3.5, 8, 10] >>> A[2:] [8, 10] 4 sama dengan elemen yang sesuai di s = pprint.pformat(somelist) print s 6. Tes >>> A = [2, 3.5, 8, 10] >>> A[2:] [8, 10] _6 adalah >>> A = [2, 3.5, 8, 10] >>> A[2:] [8, 10] 3 jika s = pprint.pformat(somelist) print s 6 dan >>> A = [2, 3.5, 8, 10] >>> A[2:] [8, 10] 4 adalah nama untuk daftar yang sama. Pengaturan table = [] for C, F in zip(Cdegrees, Fdegrees): table.append([C, F]) _00 membuat [[-20, -4.0], [-15, 5.0], [-10, 14.0], ............., [40, 104.0]] 2 merujuk ke objek daftar yang sama dengan s = pprint.pformat(somelist) print s 6, sementara table = [] for C, F in zip(Cdegrees, Fdegrees): table.append([C, F]) 03 membuat >>> A = [2, 3.5, 8, 10] >>> A[2:] [8, 10] 4 merujuk ke salinan daftar yang dirujuk oleh s = pprint.pformat(somelist) print s 6Contoh
Kami mengakhiri informasi ini pada sublists dengan menulis bagian dari table = [[C, F] for C, F in zip(Cdegrees, Fdegrees)] 8 daftar [[-20, -4.0], [-15, 5.0], [-10, 14.0], ............., [40, 104.0]] 6 baris (lihat bagian ) di mana derajat Celcius antara 10 dan 35 (tidak termasuk 35)
table = [] for C, F in zip(Cdegrees, Fdegrees): table.append([C, F]) 7Anda harus selalu berhenti membaca dan meyakinkan diri sendiri bahwa Anda memahami mengapa segmen kode menghasilkan keluaran cetak. Dalam contoh terakhir ini, table = [] for C, F in zip(Cdegrees, Fdegrees): table.append([C, F]) _08 mengembalikan indeks yang sesuai dengan nilai table = [] for C, F in zip(Cdegrees, Fdegrees): table.append([C, F]) 09 dalam daftar table = [[C, F] for C, F in zip(Cdegrees, Fdegrees)] 9. Melihat elemen table = [[C, F] for C, F in zip(Cdegrees, Fdegrees)] _9, seseorang menyadari (melakukannya. ) bahwa table = [] for C, F in zip(Cdegrees, Fdegrees): table.append([C, F]) 12 perulangan setara dengantable = [] for C, F in zip(Cdegrees, Fdegrees): table.append([C, F]) 8Perulangan ini berjalan di atas indeks \( 6, 7, \ldots, 10 \) di table = [[C, F] for C, F in zip(Cdegrees, Fdegrees)] 8Melintasi daftar bersarang
Kita telah melihat bahwa melintasi daftar bersarang table = [[C, F] for C, F in zip(Cdegrees, Fdegrees)] 8 dapat dilakukan dengan pengulangan bentuk
table = [] for C, F in zip(Cdegrees, Fdegrees): table.append([C, F]) _9Ini adalah kode alami ketika kita tahu bahwa table = [[C, F] for C, F in zip(Cdegrees, Fdegrees)] 8 adalah daftar dari [[-20, -4.0], [-15, 5.0], [-10, 14.0], ............., [40, 104.0]] 6 daftar. Sekarang kita akan membahas daftar bersarang yang lebih umum di mana kita tidak perlu tahu berapa banyak elemen yang ada di setiap elemen daftar dari daftarMisalkan kita menggunakan daftar bersarang table = [] for C, F in zip(Cdegrees, Fdegrees): table.append([C, F]) _17 untuk mencatat skor pemain dalam sebuah game. table = [] for C, F in zip(Cdegrees, Fdegrees): table.append([C, F]) _18 memegang daftar skor historis yang diperoleh oleh pemain nomor s = pprint.pformat(somelist) print s 5. Pemain yang berbeda telah memainkan permainan dengan jumlah yang berbeda, jadi panjang table = [] for C, F in zip(Cdegrees, Fdegrees): table.append([C, F]) 18 tergantung pada s = pprint.pformat(somelist) print s 5. Beberapa kode dapat membantu memperjelas ini
table = [[C, F] for C, F in zip(Cdegrees, Fdegrees)] 0Daftar table = [] for C, F in zip(Cdegrees, Fdegrees): table.append([C, F]) 17 memiliki tiga elemen, setiap elemen sesuai dengan pemain. Elemen no. table = [] for C, F in zip(Cdegrees, Fdegrees): table.append([C, F]) _23 dalam daftar table = [] for C, F in zip(Cdegrees, Fdegrees): table.append([C, F]) 24 sesuai dengan skor yang diperoleh dalam permainan nomor table = [] for C, F in zip(Cdegrees, Fdegrees): table.append([C, F]) 23 dimainkan oleh pemain nomor table = [] for C, F in zip(Cdegrees, Fdegrees): table.append([C, F]) 26. Panjang daftar ________ 48 _______ 24 bervariasi dan sama dengan 4, 1, dan 8 untuk ________ 48_______26 masing-masing sama dengan 0, 1, dan 2Dalam kasus umum kami mungkin memiliki \( n \) pemain, dan beberapa mungkin telah memainkan permainan ini berkali-kali, membuat table = [] for C, F in zip(Cdegrees, Fdegrees): table.append([C, F]) 17 berpotensi menjadi daftar bersarang yang besar. Bagaimana kita bisa melintasi daftar table = [] for C, F in zip(Cdegrees, Fdegrees): table.append([C, F]) _17 dan menuliskannya dalam format tabel dengan kolom yang diformat dengan baik? . Misalnya, data yang diinisialisasi di atas dapat ditulis sebagai
table = [[C, F] for C, F in zip(Cdegrees, Fdegrees)] 1Dalam sebuah program, kita harus menggunakan dua loop bersarang, satu untuk elemen di table = [] for C, F in zip(Cdegrees, Fdegrees): table.append([C, F]) 17 dan satu untuk elemen di sublists dari table = [] for C, F in zip(Cdegrees, Fdegrees): table.append([C, F]) 17. Contoh di bawah ini akan memperjelasnyaAda dua cara dasar melintasi daftar bersarang. baik kita menggunakan indeks bilangan bulat untuk setiap indeks, atau kita menggunakan variabel untuk elemen daftar. Mari kita contohkan versi berbasis indeks
table = [[C, F] for C, F in zip(Cdegrees, Fdegrees)] 2Dengan tanda koma setelah string cetak, kami menghindari baris baru sehingga nilai kolom dalam tabel (i. e. , skor untuk satu pemain) muncul di baris yang sama. Perintah tunggal >>> import pprint, scitools.pprint2 >>> somelist = [15.8, [0.2, 1.7]] >>> pprint.pprint(somelist) [15.800000000000001, [0.20000000000000001, 1.7]] >>> scitools.pprint2.pprint(somelist) [15.8, [0.2, 1.7]] >>> # default output is '%g', change this to >>> scitools.pprint2.float_format = '%.2e' >>> scitools.pprint2.pprint(somelist) [1.58e+01, [2.00e-01, 1.70e+00]] _8 setelah perulangan table = [] for C, F in zip(Cdegrees, Fdegrees): table.append([C, F]) 34 menambahkan baris baru setelah setiap baris tabel. Pembaca didorong untuk melalui loop dengan tangan dan mensimulasikan apa yang terjadi di setiap pernyataan (gunakan daftar table = [] for C, F in zip(Cdegrees, Fdegrees): table.append([C, F]) 17 sederhana yang diinisialisasi di atas)Versi alternatif tempat kami menggunakan variabel untuk mengulangi elemen dalam daftar table = [] for C, F in zip(Cdegrees, Fdegrees): table.append([C, F]) 17 dan subdaftarnya terlihat seperti ini
table = [[C, F] for C, F in zip(Cdegrees, Fdegrees)] _3Sekali lagi, pembaca harus menelusuri kode dengan tangan dan menyadari apa nilai table = [] for C, F in zip(Cdegrees, Fdegrees): table.append([C, F]) 37 dan table = [] for C, F in zip(Cdegrees, Fdegrees): table.append([C, F]) 38 berada di setiap lintasan loopDalam kasus yang sangat umum, kami memiliki daftar bersarang dengan banyak indeks. table = [] for C, F in zip(Cdegrees, Fdegrees): table.append([C, F]) _39. Untuk mengunjungi setiap elemen dalam daftar, kami menggunakan loop table = [] for C, F in zip(Cdegrees, Fdegrees): table.append([C, F]) 12 bersarang sebanyak indeks. Dengan empat indeks, iterasi atas indeks bilangan bulat terlihat seperti