最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python中創(chuàng)建對象列表的實現(xiàn)示例

 更新時間:2023年03月14日 09:54:18   作者:跡憶客  
本文主要介紹了Python中創(chuàng)建對象列表的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

Python 中要創(chuàng)建對象列表:

  • 聲明一個新變量并將其初始化為一個空列表。
  • 使用 for 循環(huán)迭代范圍對象。
  • 實例化一個類以在每次迭代時創(chuàng)建一個對象。
  • 將每個對象附加到列表中。
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)特定次數。

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

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

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

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

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

如果我們需要更改列表中對象的 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 個參數:

  • object 添加屬性的對象
  • name 屬性的名稱
  • value 屬性的值

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

getattr 函數返回對象提供的屬性的值。

該函數將對象、屬性名稱和對象上不存在該屬性時的默認值作為參數。

或者,我們可以使用列表推導。

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

Python 中要創(chuàng)建對象列表:

  • 使用列表推導來迭代 range 對象。
  • 在每次迭代中,實例化一個類以創(chuàng)建一個對象。
  • 新列表將包含所有新創(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

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

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

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

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

選擇哪種方法是個人喜好的問題。

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

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

實例變量對于我們通過實例化類創(chuà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


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中創(chuàng)建對象列表的實現(xiàn)示例的文章就介紹到這了,更多相關Python 創(chuàng)建對象列表內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Win7 64位下python3.6.5安裝配置圖文教程

    Win7 64位下python3.6.5安裝配置圖文教程

    這篇文章主要為大家詳細介紹了Win7 64位下python3.6.5安裝配置的圖文教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • Python中l(wèi)ogging實例講解

    Python中l(wèi)ogging實例講解

    在本篇文章里小編給大家分享的是關于Python中l(wèi)ogging的詳細介紹內容,有興趣的朋友們跟著學習下。
    2019-01-01
  • 能讓Python提速超40倍的神器Cython詳解

    能讓Python提速超40倍的神器Cython詳解

    今天帶大家了解一下能讓Python提速超40倍的神器,文章圍繞著神器Cython展開,文中有非常詳細的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06
  • 如何在Windows中安裝多個python解釋器

    如何在Windows中安裝多個python解釋器

    這篇文章主要介紹了如何在Windows中安裝多個python解釋器,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-06-06
  • Python并發(fā)編程隊列與多線程最快發(fā)送http請求方式

    Python并發(fā)編程隊列與多線程最快發(fā)送http請求方式

    假如有一個文件,里面有10萬個url,需要對每個url發(fā)送http請求,并打印請求結果的狀態(tài)碼,如何編寫代碼盡可能快的完成這些任務呢
    2021-09-09
  • 使用Tensorflow-GPU禁用GPU設置(CPU與GPU速度對比)

    使用Tensorflow-GPU禁用GPU設置(CPU與GPU速度對比)

    這篇文章主要介紹了使用Tensorflow-GPU禁用GPU設置(CPU與GPU速度對比),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • python日志模塊logging案例詳解

    python日志模塊logging案例詳解

    日志模塊主要用于輸出運行日志,可以設置輸出日志的等級、日志保存路徑、日志文件回滾等,這篇文章主要介紹了python日志模塊logging,需要的朋友可以參考下
    2024-01-01
  • PyTorch中Tensor和tensor的區(qū)別及說明

    PyTorch中Tensor和tensor的區(qū)別及說明

    這篇文章主要介紹了PyTorch中Tensor和tensor的區(qū)別及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • Python判斷字符串是否是中英文小技巧總結

    Python判斷字符串是否是中英文小技巧總結

    這篇文章主要給大家介紹了關于Python判斷字符串是否是中英文小技巧的相關資料,這個在實際應用中十分常見,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-06-06
  • python編寫樸素貝葉斯用于文本分類

    python編寫樸素貝葉斯用于文本分類

    這篇文章主要為大家詳細介紹了python編寫樸素貝葉斯用于文本分類,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-12-12

最新評論

陆川县| 南平市| 巴南区| 厦门市| 廊坊市| 新兴县| 吉水县| 靖州| 额济纳旗| 视频| 仁寿县| 永济市| 酉阳| 鱼台县| 阳东县| 双柏县| 龙山县| 榆社县| 天台县| 卓尼县| 江西省| 华宁县| 积石山| 荥阳市| 宜君县| 屯昌县| 泰兴市| 栾川县| 临沭县| 垦利县| 桂东县| 恩施市| 凤庆县| 女性| 澄迈县| 嘉定区| 乌兰察布市| 高陵县| 临邑县| 大方县| 老河口市|