> 백엔드 개발 > 파이썬 튜토리얼 > Python에서 객체 목록을 만드는 방법

Python에서 객체 목록을 만드는 방법

PHPz
풀어 주다: 2023-04-25 08:04:43
앞으로
1590명이 탐색했습니다.

Python에서 개체 목록을 만들려면:

  • 새 변수를 선언하고 빈 목록으로 초기화합니다.

  • 범위 객체를 반복하려면 for 루프를 사용하세요.

  • 클래스를 인스턴스화하여 각 반복마다 객체를 생성하세요.

  • 각 개체를 목록에 추가합니다.

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
로그인 후 복사

우리는 반복할 수 있는 범위 객체를 얻기 위해 range() 클래스를 사용합니다.

range 클래스는 일반적으로 for 루프에서 특정 횟수만큼 반복하는 데 사용됩니다.

print(list(range(5)))  # ????️ [0, 1, 2, 3, 4]
print(list(range(1, 6)))  # ????️ [1, 2, 3, 4, 5]
로그인 후 복사

특정 숫자부터 시작해야 하는 경우 2개의 매개변수(시작 및 중지)를 range() 클래스에 전달하세요.

각 반복에서 현재 번호로 Employee 클래스의 인스턴스를 만들고 결과를 목록에 추가합니다.

list.append() 메서드는 목록 끝에 항목을 추가합니다.

Employee 클래스는 단일 ID 매개변수로 인스턴스화될 수 있지만 사용 사례에 따라 객체를 생성하는 동안 더 많은 매개변수를 전달해야 할 수도 있습니다.

목록에 있는 객체의 print() 함수 출력을 변경해야 하는 경우 클래스에 __repr__() 메서드를 정의하세요.

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)
로그인 후 복사

각 객체의 ID를 print() 함수의 출력으로 사용합니다.

__repr__() 메서드는 문자열을 반환해야 한다는 점에 유의하세요.

우리 클래스가 __init__() 메서드에 필요한 모든 속성을 정의하지 않은 경우 setattr() 함수를 사용하여 각 객체에 속성을 추가하세요.

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'))
로그인 후 복사

setattr 함수는 객체에 속성을 추가합니다.

이 함수는 다음 3개의 매개변수를 사용합니다.

  • 속성을 추가할 객체 개체

  • 속성의 이름 이름 지정

  • value 속성 값

이름 문자열은 다음과 같습니다. 기존 또는 새 속성.

getattr 함수는 객체가 제공하는 속성 값을 반환합니다.

이 함수는 개체, 속성 이름 및 개체에 속성이 없는 경우 기본값을 매개 변수로 사용합니다.

또는 목록 이해를 사용할 수도 있습니다.

list comprehension을 사용하여 개체 목록 만들기

Python에서 개체 목록을 만들려면:

  • list comprehension을 사용하여 범위 개체를 반복합니다.

  • 각 반복에서 클래스를 인스턴스화하여 개체를 만듭니다.

  • 새 목록에는 새로 생성된 모든 개체가 포함됩니다.

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
로그인 후 복사

우리는 길이 5의 범위 개체를 반복하기 위해 목록 이해를 사용합니다.

List comprehension은 각 요소에 대해 특정 작업을 수행하거나 조건을 만족하는 요소의 하위 집합을 선택하는 데 사용됩니다.

각 반복에서 Employee 클래스를 인스턴스화하여 객체를 생성하고 결과를 반환합니다.

새 목록에는 새로 생성된 모든 개체가 포함됩니다.

어떤 방법을 선택할지는 개인 취향의 문제입니다.

List comprehension은 매우 간단하고 읽기 쉽지만 각 객체에 추가 속성을 추가해야 하거나 생성 프로세스가 더 복잡한 경우 for 루프를 사용해야 합니다.

Python에서 클래스의 목록에 항목 추가

클래스의 목록에 항목 추가:

클래스의 __init__() 메서드에서 목록을 초기화합니다.

하나 이상의 항목을 허용하고 목록에 추가하는 메서드를 정의하세요.

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']
로그인 후 복사

클래스의 __init__() 메서드에서 작업 목록을 인스턴스 변수로 초기화합니다.

인스턴스 변수는 클래스를 인스턴스화하여 생성하는 모든 인스턴스에 대해 고유합니다.

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']
로그인 후 복사

두 인스턴스에는 별도의 작업 목록이 있습니다.

인스턴스 변수 대신 클래스 변수를 사용할 수도 있습니다.

클래스 변수는 클래스의 모든 인스턴스에서 공유됩니다.

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']
로그인 후 복사

tasks 변수는 클래스 변수이므로 모든 인스턴스에서 공유됩니다.

add_task() 메소드를 클래스 메소드로 표시합니다. 클래스 메소드에 전달되는 첫 번째 매개변수는 클래스입니다.

list.append() 메서드는 목록 끝에 항목을 추가합니다.

그러나 종종 해야 할 일은 여러 항목을 목록에 추가하는 것입니다.

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']
로그인 후 복사

list.extend() 메서드를 사용하여 작업 목록에 여러 값을 추가합니다.

list.extend 메소드는 반복 가능한 객체(예: 목록 또는 튜플)를 사용하고 반복 가능한 객체의 모든 항목을 추가하여 목록을 확장합니다.

위 내용은 Python에서 객체 목록을 만드는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:yisu.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿