Tetapkan nilai daftar ke variabel python

Ringkasan. dalam tutorial ini, Anda akan belajar cara membongkar daftar dengan Python untuk membuat kode Anda lebih ringkas

Pengantar daftar membongkar

Contoh berikut mendefinisikan daftar string

colors = ['red', 'blue', 'green']

Code language: Python (python)

Untuk menetapkan elemen pertama, kedua, dan ketiga dari daftar ke variabel, Anda dapat menetapkan elemen individual ke variabel seperti ini

red = colors[0] blue = colors[1] green = colors[2]

Code language: Python (python)
_

Namun, Python menyediakan cara yang lebih baik untuk melakukannya. Ini disebut pembongkaran urutan

Pada dasarnya, Anda dapat menetapkan elemen daftar (dan juga tuple) ke beberapa variabel. Misalnya

red, blue, green = colors

Code language: Python (python)

Pernyataan ini memberikan elemen pertama, kedua, dan ketiga dari daftar colors ke variabel

red = colors[0] blue = colors[1] green = colors[2]

Code language: Python (python)
0,

red = colors[0] blue = colors[1] green = colors[2]

Code language: Python (python)
1, dan

red = colors[0] blue = colors[1] green = colors[2]

Code language: Python (python)
2

Dalam contoh ini, jumlah variabel di sisi kiri sama dengan jumlah elemen dalam daftar di sisi kanan

Jika Anda menggunakan jumlah variabel yang lebih sedikit di sisi kiri, Anda akan mendapatkan error. Misalnya

colors = ['red', 'blue', 'green'] red, blue = colors

Code language: Python (python)
_

Kesalahan

ValueError: too many values to unpack (expected 2)

Code language: Python (python)

Dalam hal ini, Python tidak dapat membongkar tiga elemen menjadi dua variabel

Membongkar dan mengemas

Jika Anda ingin membongkar beberapa elemen pertama dari daftar dan tidak peduli dengan elemen lainnya, Anda bisa

  • Pertama, bongkar elemen yang diperlukan ke variabel
  • Kedua, kemas elemen sisa ke dalam daftar baru dan tetapkan ke variabel lain

Dengan meletakkan tanda bintang (

red = colors[0] blue = colors[1] green = colors[2]

Code language: Python (python)
_3) di depan nama variabel, Anda akan mengemas elemen sisa ke dalam daftar dan menugaskannya ke variabel. Misalnya

colors = ['red', 'blue', 'green'] red, blue, *other = colors print(red) print(blue) print(other)

Code language: Python (python)
_

Keluaran

red blue ['green']

Code language: Python (python)

Contoh ini menugaskan elemen pertama dan kedua ke variabel. Itu mengemas dua elemen terakhir dalam daftar baru dan menugaskan daftar baru ke variabel

red = colors[0] blue = colors[1] green = colors[2]

Code language: Python (python)
7

Sama seperti

1
3
5
7
_5 loop adalah cara untuk melakukan operasi berkali-kali, daftar adalah cara untuk menyimpan banyak nilai. Tidak seperti array NumPy, daftar dibangun ke dalam bahasa (jadi kami tidak perlu memuat pustaka untuk menggunakannya). Kami membuat daftar dengan meletakkan nilai di dalam tanda kurung siku dan memisahkan nilai dengan koma

odds = [1, 3, 5, 7]
print('odds are:', odds)

odds are: [1, 3, 5, 7]

Kami memilih elemen individual dari daftar dengan mengindeksnya

print('first and last:', odds[0], odds[-1])

first and last: 1 7

dan jika kita mengulang daftar, variabel loop diberikan elemen satu per satu

for number in odds:
    print(number)

1
3
5
7

Ada satu perbedaan penting antara daftar dan string. kita dapat mengubah nilai dalam daftar, tetapi kita tidak dapat mengubah karakter individual dalam sebuah string. Misalnya

names = ['Curie', 'Darwing', 'Turing']  # typo in Darwin's name
print('names is originally:', names)
names[1] = 'Darwin'  # correct the name
print('final value of names:', names)

names is originally: ['Curie', 'Darwing', 'Turing']
final value of names: ['Curie', 'Darwin', 'Turing']

bekerja, tapi

name = 'Darwin'
name[0] = 'd'

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-8-220df48aeb2e> in <module>()
      1 name = 'Darwin'
----> 2 name[0] = 'd'

TypeError: 'str' object does not support item assignment

tidak

Ch-Ch-Ch-Ch-Perubahan

Data yang dapat diubah di tempat disebut , sedangkan data yang tidak dapat diubah disebut. String dan angka tidak dapat diubah. Ini tidak berarti bahwa variabel dengan nilai string atau angka adalah konstanta, tetapi ketika kita ingin mengubah nilai variabel string atau angka, kita hanya dapat mengganti nilai lama dengan nilai yang benar-benar baru.

Daftar dan array, di sisi lain, bisa berubah. kita dapat memodifikasinya setelah dibuat. Kami dapat mengubah elemen individual, menambahkan elemen baru, atau menyusun ulang seluruh daftar. Untuk beberapa operasi, seperti penyortiran, kita dapat memilih apakah akan menggunakan fungsi yang mengubah data di tempat atau fungsi yang mengembalikan salinan yang dimodifikasi dan membiarkan aslinya tidak berubah

Berhati-hatilah saat memodifikasi data di tempat. Jika dua variabel merujuk ke daftar yang sama, dan Anda mengubah nilai daftar, itu akan berubah untuk kedua variabel

odds are: [1, 3, 5, 7]
_0

odds are: [1, 3, 5, 7]
_1

Jika Anda ingin variabel dengan nilai yang dapat diubah menjadi independen, Anda harus membuat salinan nilai saat menetapkannya

odds are: [1, 3, 5, 7]
_2

odds are: [1, 3, 5, 7]
_3

Karena jebakan seperti ini, kode yang mengubah data di tempat bisa lebih sulit dipahami. Namun, seringkali jauh lebih efisien untuk memodifikasi struktur data yang besar daripada membuat salinan yang dimodifikasi untuk setiap perubahan kecil. Anda harus mempertimbangkan kedua aspek ini saat menulis kode

Daftar Bersarang

Karena daftar dapat berisi variabel Python apa saja, daftar tersebut bahkan dapat berisi daftar lainnya

Misalnya, kita dapat menampilkan produk di rak toko kelontong kecil

odds are: [1, 3, 5, 7]
_4

Berikut adalah contoh visual tentang cara kerja pengindeksan daftar daftar

1
3
5
7
6

Tetapkan nilai daftar ke variabel python

Menggunakan daftar yang dinyatakan sebelumnya

1
3
5
7
_6, ini akan menjadi hasil dari operasi indeks yang ditunjukkan pada gambar

odds are: [1, 3, 5, 7]
_5

odds are: [1, 3, 5, 7]
_6

odds are: [1, 3, 5, 7]
_7

odds are: [1, 3, 5, 7]
_8

odds are: [1, 3, 5, 7]
_9

print('first and last:', odds[0], odds[-1])
0

Terima kasih kepada Hadley Wickham untuk gambar di atas

Daftar Heterogen

Daftar di Python dapat berisi elemen dari berbagai jenis. Contoh

print('first and last:', odds[0], odds[-1])
1

Ada banyak cara untuk mengubah isi daftar selain menetapkan nilai baru ke masing-masing elemen

print('first and last:', odds[0], odds[-1])
2

print('first and last:', odds[0], odds[-1])
_3

print('first and last:', odds[0], odds[-1])
4

print('first and last:', odds[0], odds[-1])
5

print('first and last:', odds[0], odds[-1])
6

print('first and last:', odds[0], odds[-1])
7

Saat memodifikasi di tempat, perlu diingat bahwa Python memperlakukan daftar dengan cara yang sedikit kontra-intuitif

Jika kita membuat daftar dan (mencoba) menyalinnya kemudian memodifikasinya, kita dapat menyebabkan segala macam masalah

print('first and last:', odds[0], odds[-1])
8

print('first and last:', odds[0], odds[-1])
_9

Ini karena Python menyimpan daftar dalam memori, dan kemudian dapat menggunakan banyak nama untuk merujuk ke daftar yang sama. Jika yang ingin kita lakukan hanyalah menyalin daftar (sederhana), kita dapat menggunakan fungsi

1
3
5
7
8, jadi kita tidak mengubah daftar yang tidak kita maksudkan

first and last: 1 7
_0

first and last: 1 7
_1

Ini berbeda dari cara kerja variabel di pelajaran 1, dan lebih mirip dengan cara kerja spreadsheet

Mengubah String Menjadi Daftar

Gunakan for-loop untuk mengonversi string "halo" menjadi daftar huruf

first and last: 1 7
_2

Petunjuk. Anda dapat membuat daftar kosong seperti ini

first and last: 1 7
_3

Larutan

first and last: 1 7
_4

Subset daftar dan string dapat diakses dengan menentukan rentang nilai dalam tanda kurung, mirip dengan cara kami mengakses rentang posisi dalam larik NumPy. Ini biasanya disebut sebagai "mengiris" daftar/string

first and last: 1 7
_5

first and last: 1 7
_6

Mengiris Dari Akhir

Gunakan slicing untuk mengakses hanya empat karakter terakhir dari string atau entri daftar

first and last: 1 7
_7

first and last: 1 7
_8

Apakah solusi Anda akan berfungsi terlepas dari apakah Anda mengetahui sebelumnya panjang string atau daftar (mis. g. jika Anda ingin menerapkan solusi ke sekumpulan daftar dengan panjang berbeda)?

Larutan

Gunakan indeks negatif untuk menghitung elemen dari ujung wadah (seperti daftar atau string)

first and last: 1 7
_9

Irisan Tidak Berkelanjutan

Sejauh ini kita telah melihat cara menggunakan slicing untuk mengambil satu blok entri berturut-turut dari suatu urutan. Tetapi bagaimana jika kita ingin mengambil subkumpulan entri yang tidak bersebelahan dalam urutan?

Anda dapat melakukannya dengan memberikan argumen ketiga ke rentang di dalam tanda kurung, yang disebut ukuran langkah. Contoh di bawah menunjukkan bagaimana Anda dapat mengambil setiap entri ketiga dalam daftar

for number in odds:
    print(number)
0

for number in odds:
    print(number)
1

Perhatikan bahwa potongan yang diambil dimulai dengan entri pertama dalam rentang, diikuti dengan entri yang diambil pada interval dengan jarak yang sama (langkah-langkah) sesudahnya. Jika Anda ingin memulai subset dengan entri ketiga, Anda perlu menentukannya sebagai titik awal rentang irisan

for number in odds:
    print(number)
2

for number in odds:
    print(number)
3

Gunakan argumen ukuran langkah untuk membuat string baru yang hanya berisi setiap karakter lain dalam string "Di taman gurita di tempat teduh"

for number in odds:
    print(number)
_4

for number in odds:
    print(number)
5

Larutan

Untuk mendapatkan setiap karakter lain, Anda perlu memberikan potongan dengan ukuran langkah 2

for number in odds:
    print(number)
6

Anda juga dapat mengabaikan awal dan akhir irisan untuk mengambil seluruh string dan hanya menyediakan argumen langkah untuk setiap elemen kedua

for number in odds:
    print(number)
7

Jika Anda ingin mengambil irisan dari awal urutan, Anda dapat menghilangkan indeks pertama dalam rentang tersebut

for number in odds:
    print(number)
8

for number in odds:
    print(number)
_9

Demikian pula, Anda dapat menghilangkan indeks akhir dalam rentang untuk mengambil potongan hingga akhir urutan

1
3
5
7
0

1
3
5
7
1

Kelebihan beban

1
3
5
7
9 biasanya berarti penambahan, tetapi ketika digunakan pada string atau daftar, itu berarti "menggabungkan". Mengingat itu, menurut Anda apa yang dilakukan operator perkalian
names = ['Curie', 'Darwing', 'Turing']  # typo in Darwin's name
print('names is originally:', names)
names[1] = 'Darwin'  # correct the name
print('final value of names:', names)
0 pada daftar?

1
3
5
7
2

  1. names = ['Curie', 'Darwing', 'Turing']  # typo in Darwin's name
    print('names is originally:', names)
    names[1] = 'Darwin'  # correct the name
    print('final value of names:', names)
    
    _1
  2. names = ['Curie', 'Darwing', 'Turing']  # typo in Darwin's name
    print('names is originally:', names)
    names[1] = 'Darwin'  # correct the name
    print('final value of names:', names)
    
    _2
  3. names = ['Curie', 'Darwing', 'Turing']  # typo in Darwin's name
    print('names is originally:', names)
    names[1] = 'Darwin'  # correct the name
    print('final value of names:', names)
    
    _3
  4. names = ['Curie', 'Darwing', 'Turing']  # typo in Darwin's name
    print('names is originally:', names)
    names[1] = 'Darwin'  # correct the name
    print('final value of names:', names)
    
    _4

Istilah teknis untuk ini adalah kelebihan beban operator. satu operator, seperti

1
3
5
7
_9 atau
names = ['Curie', 'Darwing', 'Turing']  # typo in Darwin's name
print('names is originally:', names)
names[1] = 'Darwin'  # correct the name
print('final value of names:', names)
0, dapat melakukan hal yang berbeda bergantung pada apa yang diterapkan

Larutan

Operator perkalian

names = ['Curie', 'Darwing', 'Turing']  # typo in Darwin's name
print('names is originally:', names)
names[1] = 'Darwin'  # correct the name
print('final value of names:', names)
_0 yang digunakan pada daftar mereplikasi elemen daftar dan menggabungkannya bersama-sama

1
3
5
7
3

Ini setara dengan

1
3
5
7
4

Poin Kunci

  • names = ['Curie', 'Darwing', 'Turing']  # typo in Darwin's name
    print('names is originally:', names)
    names[1] = 'Darwin'  # correct the name
    print('final value of names:', names)
    
    _8 membuat daftar

  • Daftar dapat berisi objek Python apa pun, termasuk daftar (mis. e. , daftar daftar)

  • Daftar diindeks dan diiris dengan tanda kurung siku (mis. g. , daftar[0] dan daftar[2. 9]), dengan cara yang sama seperti string dan array

    Bagaimana Anda menetapkan daftar ke variabel dengan Python?

    Metode #2. Menggunakan itemgetter() fungsi itemgetter juga dapat digunakan untuk melakukan tugas khusus ini. Fungsi ini menerima nilai indeks dan wadah tempat kerjanya dan menetapkan ke variabel.

    Bagaimana Anda menyimpan daftar dalam variabel dengan Python?

    Solusi yang disediakan melakukan hal berikut. .
    buat daftar kosong bernama my_list
    buka for for dengan variabel yang dideklarasikan "halo" dalam tanda kutip
    gunakan kata kunci char sebagai variabel loop. .
    gunakan properti append yang dibangun di semua daftar Python untuk menambahkan karakter di akhir daftar
    ketika loop selesai, daftar terakhir dicetak

    Bisakah kita menetapkan nilai ke daftar dengan Python?

    Tugas dengan tanda = pada daftar tidak membuat salinan . Alih-alih, penugasan membuat kedua variabel menunjuk ke satu daftar di memori. "Daftar kosong" hanyalah sepasang tanda kurung kosong [ ]. '+' berfungsi untuk menambahkan dua daftar, jadi [1, 2] + [3, 4] menghasilkan [1, 2, 3, 4] (ini seperti + dengan string).

    Bagaimana Anda menetapkan beberapa nilai ke variabel dengan Python?

    Variabel Python - Tetapkan Beberapa Nilai .
    ❮ Sebelumnya Berikutnya ❯
    x, y, z = "Oranye", "Pisang", "Cherry" print(x) print(y) print(z) Coba Sendiri »
    x = y = z = "Oranye" print(x) print(y) print(z) Coba Sendiri »
    Buka kemasan daftar. buah-buahan = ["apel", "pisang", "ceri"] x, y, z = buah-buahan. cetak(x) cetak(y).
    ❮ Sebelumnya Berikutnya ❯