Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana untuk membuat senarai objek dalam Python

Bagaimana untuk membuat senarai objek dalam Python

PHPz
Lepaskan: 2023-04-25 08:04:43
ke hadapan
1564 orang telah melayarinya

Untuk mencipta senarai objek dalam Python:

  • Isytiharkan pembolehubah baharu dan mulakannya ke senarai kosong.

  • Gunakan gelung for untuk lelaran ke atas objek julat.

  • Segera kelas untuk mencipta objek pada setiap lelaran.

  • Tambahkan setiap objek pada senarai.

class Employee():
    def __init__(self, id):
        self.id = id


list_of_objects = []

for i in range(5):
    list_of_objects.append(Employee(i))

print(list_of_objects)

for obj in list_of_objects:
    print(obj.id)  # ????️ 0, 1, 2, 3, 4
Salin selepas log masuk

Kami menggunakan kelas julat() untuk mendapatkan objek julat yang boleh diulang. Kelas julat

selalunya digunakan untuk menggelung bilangan kali tertentu dalam gelung untuk.

print(list(range(5)))  # ????️ [0, 1, 2, 3, 4]
print(list(range(1, 6)))  # ????️ [1, 2, 3, 4, 5]
Salin selepas log masuk

Jika kita perlu bermula dari nombor tertentu, hantar 2 parameter (mula dan berhenti) ke kelas julat().

Dalam setiap lelaran, kami mencipta contoh kelas Pekerja dengan nombor semasa dan menambahkan hasilnya pada senarai.

Kaedah list.append() menambah item pada penghujung senarai.

Kelas Pekerja boleh dijadikan instantiated dengan parameter id tunggal, tetapi bergantung pada kes penggunaan anda, anda mungkin perlu menghantar lebih banyak parameter semasa mencipta objek.

Jika kita perlu menukar output fungsi print() objek dalam senarai, takrifkan kaedah __repr__() dalam kelas.

class Employee():
    def __init__(self, id):
        self.id = id

    def __repr__(self):
        return str(self.id)


list_of_objects = []

for i in range(5):
    list_of_objects.append(Employee(i))

# ????️ [0, 1, 2, 3, 4]
print(list_of_objects)
Salin selepas log masuk

Kami menggunakan id setiap objek sebagai output fungsi print().

Sila ambil perhatian bahawa kaedah __repr__() mesti mengembalikan rentetan.

Jika kelas kami tidak mentakrifkan semua atribut yang diperlukan dalam kaedah __init__()nya, gunakan fungsi setattr() untuk menambah atribut pada setiap objek.

class Employee():
    def __init__(self, id):
        self.id = id

    def __repr__(self):
        return str(self.id)


list_of_objects = []

for i in range(3):
    obj = Employee(i)

    setattr(obj, 'topic', 'Python')
    setattr(obj, 'salary', 100)

    list_of_objects.append(obj)

# ????️ [0, 1, 2]
print(list_of_objects)

for obj in list_of_objects:
    print(getattr(obj, 'topic'))
    print(getattr(obj, 'salary'))
Salin selepas log masuk

Fungsi setattr menambah atribut pada objek.

Fungsi ini mengambil 3 parameter berikut:

  • objek Objek untuk menambah atribut

  • nama Nama nama atribut

  • nilai Nilai atribut

Rentetan nama boleh menjadi atribut sedia ada atau baharu.

Fungsi getattr mengembalikan nilai atribut yang disediakan oleh objek.

Fungsi ini mengambil sebagai parameter objek, nama sifat dan nilai lalai jika sifat tidak wujud pada objek.

Sebagai alternatif, kita boleh menggunakan pemahaman senarai.

Buat senarai objek menggunakan pemahaman senarai

Untuk mencipta senarai objek dalam Python:

  • Gunakan pemahaman senarai untuk mengulangi objek dalam julat.

  • Dalam setiap lelaran, nyatakan kelas untuk mencipta objek.

  • Senarai baharu akan mengandungi semua objek yang baru dibuat.

class Employee():
    def __init__(self, id):
        self.id = id

    def __repr__(self):
        return str(self.id)


list_of_objects = [
    Employee(i) for i in range(1, 6)
]

print(list_of_objects)  # ????️ [1, 2, 3, 4, 5]

for obj in list_of_objects:
    print(obj.id)  # 1, 2, 3, 4, 5
Salin selepas log masuk

Kami menggunakan pemahaman senarai untuk mengulangi objek julat panjang 5.

Pemahaman senarai digunakan untuk melaksanakan operasi tertentu pada setiap elemen atau untuk memilih subset elemen yang memenuhi syarat.

Dalam setiap lelaran, kami membuat instantiate kelas Pekerja untuk mencipta objek dan mengembalikan hasilnya.

Senarai baharu mengandungi semua objek yang baru dibuat.

Kaedah yang manakah untuk dipilih adalah soal keutamaan peribadi.

Kefahaman senarai adalah sangat mudah dan mudah dibaca, tetapi jika anda perlu menambah sifat tambahan pada setiap objek atau proses penciptaan lebih kompleks, anda mesti menggunakan gelung for.

Menambah item pada senarai dalam kelas dalam Python

Menambah item pada senarai dalam kelas:

Memulakan senarai dalam kaedah __init__() kelas.

Tentukan kaedah yang menerima satu atau lebih item dan menambahkannya pada senarai.

class Employee():

    def __init__(self, name, salary):
        self.name = name
        self.salary = salary
        self.tasks = []  # ????️ initialize list

    def add_task(self, task):
        self.tasks.append(task)

        return self.tasks


bob = Employee('Jiyik', 100)

bob.add_task('develop')
bob.add_task('ship')

print(bob.tasks)  # ????️ ['develop', 'ship']
Salin selepas log masuk

Kami memulakan senarai tugasan sebagai pembolehubah contoh dalam kaedah __init__() kelas.

Pembolehubah tika adalah unik untuk setiap tika yang kami buat dengan membuat seketika kelas.

class Employee():

    def __init__(self, name, salary):
        self.name = name
        self.salary = salary
        self.tasks = []  # ????️ initialize list

    def add_task(self, task):
        self.tasks.append(task)

        return self.tasks


alice = Employee('Fql', 1000)
alice.add_task('design')
alice.add_task('test')
print(alice.tasks)  # ????️ ['design', 'test']

bob = Employee('Jiyik', 100)
bob.add_task('develop')
bob.add_task('ship')
print(bob.tasks)  # ????️ ['develop', 'ship']
Salin selepas log masuk

Kedua-dua kejadian mempunyai senarai tugas yang berasingan.

Kami juga boleh menggunakan pembolehubah kelas dan bukannya pembolehubah contoh.

Pembolehubah kelas dikongsi oleh semua kejadian kelas.

class Employee():
    # ????️ class variable
    tasks = []

    def __init__(self, name, salary):
        self.name = name
        self.salary = salary

    @classmethod
    def add_task(cls, task):
        cls.tasks.append(task)

        return cls.tasks


Employee.add_task('develop')
Employee.add_task('ship')

print(Employee.tasks)  # ????️ ['develop', 'ship']

alice = Employee('Fql', 1000)
print(alice.tasks)  # ????️ ['develop', 'ship']

bob = Employee('Jiyik', 100)
print(bob.tasks)  # ????️ ['develop', 'ship']
Salin selepas log masuk

Pembolehubah tugas ialah pembolehubah kelas, jadi ia dikongsi oleh semua kejadian.

Kami menandakan kaedah add_task() sebagai kaedah kelas. Parameter pertama yang dihantar kepada kaedah kelas ialah kelas.

Kaedah list.append() menambah item pada penghujung senarai.

Walau bagaimanapun, sesuatu yang sering kita perlu lakukan ialah menambahkan berbilang item pada senarai.

Kami boleh menambahkan item objek boleh lelar pada senarai menggunakan kaedah list.extend().

class Employee():

    def __init__(self, name, salary):
        # ????️ 实例变量(每个实例都是唯一的)
        self.name = name
        self.salary = salary
        self.tasks = []  # ????️ 初始化列表

    def add_tasks(self, iterable_of_tasks):
        self.tasks.extend(iterable_of_tasks)

        return self.tasks


bob = Employee('Jiyik', 100)

bob.add_tasks(['develop', 'test', 'ship'])

print(bob.tasks)  # ????️ ['develop', 'test', 'ship']
Salin selepas log masuk

Kami menggunakan kaedah list.extend() untuk menambahkan berbilang nilai pada senarai tugas.

Kaedah list.extend mengambil objek boleh lelaran (seperti senarai atau tuple) dan memanjangkan senarai dengan menambahkan semua item dalam objek boleh lelaran.

Atas ialah kandungan terperinci Bagaimana untuk membuat senarai objek dalam Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan