Python中如何创建对象列表

发布时间:2023-03-14 10:30:25 作者:iii
来源:亿速云 阅读:156

这篇文章主要讲解了“Python中如何创建对象列表”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python中如何创建对象列表”吧!

Python 中要创建对象列表:

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() 方法将一个项目添加到列表的末尾。

可以使用单个 id 参数实例化 Employee 类,但根据您的用例,您在创建对象时可能必须传递更多参数。

如果我们需要更改列表中对象的 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 个参数:

名称字符串可以是现有的或新的属性。

getattr 函数返回对象提供的属性的值。

该函数将对象、属性名称和对象上不存在该属性时的默认值作为参数。

或者,我们可以使用列表推导。

使用列表理解创建对象列表

Python 中要创建对象列表:

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 的范围对象。

列表推导用于对每个元素执行某些操作或选择满足条件的元素子集。

在每次迭代中,我们实例化 Employee 类以创建一个对象并返回结果。

新列表包含所有新创建的对象。

选择哪种方法是个人喜好的问题。

列表推导非常直接且易于阅读,但如果您需要向每个对象添加额外的属性或者创建过程更加复杂,则必须使用 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中如何创建对象列表”的内容了,经过本文的学习后,相信大家对Python中如何创建对象列表这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

推荐阅读:
  1. python之列表推导式的用法
  2. 使用python怎么遍历方阵的对角线

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

python

上一篇:python中小数点后的位数问题如何解决

下一篇:Highcharts图表中图例显示状态存储的功能怎么设计

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》