簡體   English   中英

循環創建多個對象

[英]Create several objects in a loop

我們的程序在循環創建多個對象時遇到問題。 我們正在從文本文件中讀取元素周期表中所有元素的列表及其各自的原子權重。 我們要為每個原子創建一個單獨的對象,並以原子權重和原子名稱為屬性。 我們最容易做到這一點嗎?

到目前為止,我們想到的是:我們創建了一個包含所有原子名稱的列表,以及一個具有其權重的列表。 然后,我們嘗試進行循環以創建多個對象,而不必一個個地單獨創建它們,因此我們嘗試了以下操作:

for i in range(len(name_list)):
    name_list[i] = Atom(atom_name=name_list[i], atom_weight=weight_list[i])

(我們的類名為Atom並具有屬性atom_nameatom_weight

我認為您想要的是:

name_list = [Atom(*data) for data in zip(name_list, weight_list)]

如果此語法不熟悉,請參見Python for-in循環,其后為變量並且**(雙星)和*(星)對參數有什么作用? 如果您的類僅接受關鍵字參數,則可以切換到:

name_list = [Atom(atom_name=name, atom_weight=weight) 
             for name, weight in zip(name_list, weight_list)]

有關zip更多信息,請參閱文檔

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM