4 回答

TA貢獻(xiàn)1757條經(jīng)驗(yàn) 獲得超8個(gè)贊
我寧愿不將數(shù)據(jù)硬編碼到 py 文件中。如果將它分開,則 py 文件將更加通用并且可以輕松傳輸?shù)狡渌麛?shù)據(jù)。一個(gè)單獨(dú)的文件也可以更容易地替換數(shù)據(jù)集(“數(shù)據(jù)不易更改”可能僅意味著單個(gè)值是恒定的,而不是整個(gè)集合)。
導(dǎo)入所需的資源可能會(huì)有所不同,具體取決于所使用的庫和創(chuàng)建的對(duì)象類型(有關(guān)更多詳細(xì)信息,請(qǐng)參見此處)。然而,這可能可以忽略不計(jì),具體取決于數(shù)據(jù)的大小。
考慮創(chuàng)建一個(gè)導(dǎo)入數(shù)據(jù)一次的函數(shù),pickle(序列化)它并加載序列化的表單(只要數(shù)據(jù)不變,或者根據(jù)用戶輸入)。這對(duì)于大型數(shù)據(jù)集和其他一些似乎不適用于您的情況特別有用。

TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超8個(gè)贊
如果 python 類的可讀性不是問題(盡管最好的做法是盡可能保持代碼的可讀性),這里最大的問題是我們?cè)谡務(wù)摗岸嗌佟睌?shù)據(jù)?如果您有數(shù) GB 的數(shù)據(jù),那么您不希望同時(shí)將所有這些都放在內(nèi)存中(即,如果您只是將其作為常量保存在 .py 文件中會(huì)發(fā)生什么情況)。相反,對(duì)于如此大的數(shù)據(jù),您希望在需要時(shí)從磁盤(可能是 csv)中讀取它。
當(dāng)然,將其存儲(chǔ)在磁盤中會(huì)影響性能,因?yàn)閺拇疟P讀取比從內(nèi)存讀取慢。性能影響是否適合您的應(yīng)用程序由您決定。
確??勺x性和良好性能的一個(gè)很好的中間方法可能是(假設(shè)您有足夠的內(nèi)存)將數(shù)據(jù)存儲(chǔ)在 csv 中,在啟動(dòng)時(shí)一次讀取所有數(shù)據(jù)并將其保存在內(nèi)存中以供重復(fù)調(diào)用。

TA貢獻(xiàn)1773條經(jīng)驗(yàn) 獲得超3個(gè)贊
我的建議是以 Json 格式存儲(chǔ)數(shù)據(jù)。就像在 MongoDb 中一樣,通過采用 No-Sql 格式。這將幫助您輕松管理和控制數(shù)據(jù)。

TA貢獻(xiàn)1898條經(jīng)驗(yàn) 獲得超8個(gè)贊
寫入 csv 文件是更好的做法,因?yàn)樗岣吡苏麄€(gè)代碼的可讀性。它不會(huì)影響你的表現(xiàn),而且會(huì)讓你受益匪淺。
添加回答
舉報(bào)