亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

Bekas tersuai (Bekas)

Selepas pengenalan dalam bab sebelumnya, kita tahu bahawa dalam Python, jenis bekas biasa ialah: dict, tuple, list, string. Konsep bekas bekas dan bekas tidak berubah juga disebut. Antaranya, tuple dan rentetan ialah bekas tidak boleh diubah, dan dict dan senarai ialah bekas boleh ubah. Perbezaan antara bekas boleh ubah dan bekas tidak berubah ialah apabila bekas tidak berubah diberikan nilai, elemen di dalamnya tidak boleh diubah suai. Sudah tentu, untuk pengenalan terperinci, anda boleh membaca kembali artikel sebelumnya, yang mempunyai gambar dan teks.

Jadi, inilah soalan pertama, adakah struktur data ini cukup untuk kita bangunkan dan gunakan? Apakah yang perlu kita lakukan apabila ia tidak mencukupi, atau apabila terdapat beberapa keperluan khas yang tidak dapat diselesaikan menggunakan bekas asas ini sahaja?

Pada masa ini, kita perlu menyesuaikan bekas, jadi bagaimana kita harus melakukannya? Fungsi

jenis bekas meja Takrifkan __setitem__ dan __delitem__Perlu mentakrifkan __iter__Perlu melaksanakan __len__(diri) kontena diri Callus jenis kunci adalah salah, TypeError akan dilemparkan Jika nilai yang sepadan dengan kunci tidak dapat dikembalikan, kaedah tersebut harus membuang ValueError Perlu melaksanakan __getitem__(diri, kunci)Apabila melaksanakan kunci kendiri. ] = valueKaedah yang dipanggil ialah __setitem__(self, key, value)Apabila kaedah del self[key] dilaksanakanMalah, kaedah yang dipanggil ialah __delitem__(self, key)
#!/usr/bin/env python3
# -*- coding: UTF-8 -*-
class FunctionalList:
    ''' 實(shí)現(xiàn)了內(nèi)置類型list的功能,并豐富了一些其他方法: head, tail, init, last, drop, take'''
    def __init__(self, values=None):
        if values is None:
            self.values = []
        else:
            self.values = values
    def __len__(self):
        return len(self.values)
    def __getitem__(self, key):
        return self.values[key]
    def __setitem__(self, key, value):
        self.values[key] = value
    def __delitem__(self, key):
        del self.values[key]
    def __iter__(self):
        return iter(self.values)
    def __reversed__(self):
        return FunctionalList(reversed(self.values))
    def append(self, value):
        self.values.append(value)
    def head(self):
        # 獲取第一個(gè)元素
        return self.values[0]
    def tail(self):
        # 獲取第一個(gè)元素之后的所有元素
        return self.values[1:]
    def init(self):
        # 獲取最后一個(gè)元素之前的所有元素
        return self.values[:-1]
    def last(self):
        # 獲取最后一個(gè)元素
        return self.values[-1]
    def drop(self, n):
        # 獲取所有元素,除了前N個(gè)
        return self.values[n:]
    def take(self, n):
        # 獲取前N個(gè)元素
        return self.values[:n]
Meneruskan pembelajaran
  1. <bdo id="vhncb"><source id="vhncb"><tr id="vhncb"></tr></source></bdo><cite id="vhncb"><strike id="vhncb"><pre id="vhncb"></pre></strike></cite><style id="vhncb"><strike id="vhncb"><wbr id="vhncb"></wbr></strike></style>
        Jenis data tersuai perlu diulang
        Kembalikan panjang bekas tersuai
        Apabila anda mahu bekas anda melaksanakan untuk x dalam bekas: atau gunakan iter(bekas), anda perlu melaksanakan __iter__(self) Kaedah ini mengembalikan iterator Mari kita lihat menggunakan kaedah ajaib di atas Laksanakan struktur data dalam Haskell bahasa:
        <button id="vhncb"></button>
      • <dfn id="vhncb"><fieldset id="vhncb"></fieldset></dfn>
        1. <del id="vhncb"><ul id="vhncb"></ul></del>