...
]
Η παρακάτω λίστα μεταφέρει τις γραμμές και σε στήλες:
>>>
[[row[i]
for
row
in
matrix]
for
i
in
range
(
4
)]
[[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]
Όπως είδαμε παραπάνω, η ένθετη listcomp αξιολογείται
στο πλαίσιο του γι 'αυτό που ακολουθεί, έτσι ώστε αυτό το
παράδειγμα να είναι ισοδύναμο με:
>>>
transposed
=
[]
>>>
for
i
in
range
(
4
):
...
transposed
.
append([row[i]
for
row
in
matrix])
...
>>>
transposed
[[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]
Που ισοδυναμεί με:
>>>
transposed
=
[]
>>>
for
i
in
range
(
4
):
...
# the following 3 lines implement the nested
listcomp
...
transposed_row
=
[]
...
for
row
in
matrix:
...
transposed_row
.
append(row[i])
...
transposed
.
append(transposed_row)
...
>>>
transposed
[[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]
Στην πραγματικότητα, θα πρέπει να προτιμάτε
ενσωματωμένες λειτουργίες σε πολύπλοκες καταστάσεις ροής. Η
συνάρτηση zip () κάνει μια σπουδαία εργασία για αυτήν την
περίπτωση χρήσης:
>>>
list
(
zip
(
*
matrix))
[(1, 5, 9), (2, 6, 10), (3, 7, 11), (4, 8, 12)]
Η εντολή del
- A Mini greek notebook for Learning Python Programming
38