欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

Python中怎么創(chuàng)建對象列表

本文小編為大家詳細(xì)介紹“Python中怎么創(chuàng)建對象列表”,內(nèi)容詳細(xì),步驟清晰,細(xì)節(jié)處理妥當(dāng),希望這篇“Python中怎么創(chuàng)建對象列表”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學(xué)習(xí)新知識(shí)吧。

在修武等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站建設(shè)、網(wǎng)站制作 網(wǎng)站設(shè)計(jì)制作按需求定制設(shè)計(jì),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),營銷型網(wǎng)站,成都外貿(mào)網(wǎng)站建設(shè),修武網(wǎng)站建設(shè)費(fèi)用合理。

Python 中要?jiǎng)?chuàng)建對象列表:

  • 聲明一個(gè)新變量并將其初始化為一個(gè)空列表。

  • 使用 for 循環(huán)迭代范圍對象。

  • 實(shí)例化一個(gè)類以在每次迭代時(shí)創(chuàng)建一個(gè)對象。

  • 將每個(gè)對象附加到列表中。

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 循環(huán)中循環(huán)特定次數(shù)。

print(list(range(5)))  # ????? [0, 1, 2, 3, 4]
print(list(range(1, 6)))  # ????? [1, 2, 3, 4, 5]

如果我們需要從特定數(shù)字開始,請將 2 個(gè)參數(shù)(開始和停止)傳遞給 range() 類。

在每次迭代中,我們使用當(dāng)前數(shù)字創(chuàng)建 Employee 類的實(shí)例并將結(jié)果附加到列表中。

list.append() 方法將一個(gè)項(xiàng)目添加到列表的末尾。

可以使用單個(gè) id 參數(shù)實(shí)例化 Employee 類,但根據(jù)您的用例,您在創(chuàng)建對象時(shí)可能必須傳遞更多參數(shù)。

如果我們需要更改列表中對象的 print() 函數(shù)的輸出,請?jiān)陬愔卸x __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)

我們使用每個(gè)對象的 id 作為 print() 函數(shù)的輸出。

請注意 ,__repr__() 方法必須返回一個(gè)字符串。

如果我們的類沒有在其 __init__() 方法中定義所有必要的屬性,請使用 setattr() 函數(shù)為每個(gè)對象添加屬性。

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 函數(shù)向?qū)ο筇砑訉傩浴?/p>

該函數(shù)采用以下 3 個(gè)參數(shù):

  • object 添加屬性的對象

  • name 屬性的名稱

  • value 屬性的值

名稱字符串可以是現(xiàn)有的或新的屬性。

getattr 函數(shù)返回對象提供的屬性的值。

該函數(shù)將對象、屬性名稱和對象上不存在該屬性時(shí)的默認(rèn)值作為參數(shù)。

或者,我們可以使用列表推導(dǎo)。

使用列表理解創(chuàng)建對象列表

Python 中要?jiǎng)?chuàng)建對象列表:

  • 使用列表推導(dǎo)來迭代 range 對象。

  • 在每次迭代中,實(shí)例化一個(gè)類以創(chuàng)建一個(gè)對象。

  • 新列表將包含所有新創(chuàng)建的對象。

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

我們使用列表推導(dǎo)來迭代長度為 5 的范圍對象。

列表推導(dǎo)用于對每個(gè)元素執(zhí)行某些操作或選擇滿足條件的元素子集。

在每次迭代中,我們實(shí)例化 Employee 類以創(chuàng)建一個(gè)對象并返回結(jié)果。

新列表包含所有新創(chuàng)建的對象。

選擇哪種方法是個(gè)人喜好的問題。

列表推導(dǎo)非常直接且易于閱讀,但如果您需要向每個(gè)對象添加額外的屬性或者創(chuàng)建過程更加復(fù)雜,則必須使用 for 循環(huán)。

在 Python 中將項(xiàng)目附加到類中的列表

將項(xiàng)目附加到類中的列表:

在類的 __init__() 方法中初始化列表。

定義一個(gè)方法,它接受一個(gè)或多個(gè)項(xiàng)目并將它們附加到列表中。

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__() 方法中將任務(wù)列表初始化為實(shí)例變量。

實(shí)例變量對于我們通過實(shí)例化類創(chuàng)建的每個(gè)實(shí)例都是唯一的。

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']

這兩個(gè)實(shí)例有單獨(dú)的任務(wù)列表。

我們還可以使用類變量而不是實(shí)例變量。

類變量由類的所有實(shí)例共享。

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 變量是一個(gè)類變量,所以它被所有實(shí)例共享。

我們將 add_task() 方法標(biāo)記為類方法。 傳遞的第一個(gè)參數(shù)類方法是類。

list.append() 方法將一個(gè)項(xiàng)目添加到列表的末尾。

但是,我們可能經(jīng)常需要做的事情是將多個(gè)項(xiàng)目附加到列表中。

我們可以使用 list.extend() 方法將可迭代對象的項(xiàng)目附加到列表中。

class Employee():

    def __init__(self, name, salary):
        # ????? 實(shí)例變量(每個(gè)實(shí)例都是唯一的)
        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() 方法將多個(gè)值附加到任務(wù)列表。

list.extend 方法采用可迭代對象(例如列表或元組)并通過附加可迭代對象中的所有項(xiàng)目來擴(kuò)展列表。

讀到這里,這篇“Python中怎么創(chuàng)建對象列表”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識(shí)點(diǎn)還需要大家自己動(dòng)手實(shí)踐使用過才能領(lǐng)會(huì),如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

本文標(biāo)題:Python中怎么創(chuàng)建對象列表
新聞來源:http://www.aaarwkj.com/article12/jegpgc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)、網(wǎng)站收錄靜態(tài)網(wǎng)站、品牌網(wǎng)站設(shè)計(jì)App設(shè)計(jì)、定制網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作
在线观看亚洲毛片网站| 人人妻夜夜天天俺去添噜| 欧美日韩欧美黄色三级| 韩国一级av免费在线| 东京一区二区三区四区黄片| 玩弄丰满熟妇班主任老师| 无人码人妻一区二区三区免| 亚洲精品一区二区日本| 国产亚洲精品免费专线视频| 日韩在线国产精品一区| 高清大片免费看一区二区| 宫部凉花中文字幕在线| 日韩在线视频一区二区三| 最近更新中文字幕不卡在线| 日韩一区二区偷拍视频| av在线亚洲网站区一| 一区二区在线日韩视频| 国产特级黄片免费观看| 中文字幕加勒比东京热| 国产大学生吞精在线视频| 99热只有这里才有精品| 超碰国产熟女一区二区三区| 国产精品精品国产一区二区 | 精品亚洲一区二区在线| 国产三级网站在线观看播放| 99国产精品的热久久| 日韩人妻熟妇中文字幕| 97资源在线公开视频| 我要看亚洲黄色片一级| 亚洲区一区二区三区精品| 免费女性啪啪无遮挡网站| 午夜视频在线观看麻豆| 亚洲av日韩av在线不卡一区| 中国人妻一区二区三区| 国内精品偷拍一区二区三区| 国产精品一区在线播放| 日韩精品在线中文字幕| 欧美日本国产专区一区| 国产亚洲欧美久久精品| 精品色妇熟妇丰满人妻5| 亚洲婷婷综合久久一区二区|