2013-08-30 48 views
-6

假設我想添加一些如何在代碼中的數據添加到列表中,同時運行

list = [] 

,使得列表的價值在它的代碼自我得到更新。 在運行時: 列表被修改爲

list =['hello','Dude'] 

我該怎麼辦呢?

我的意思是,在.py文件中對列表值進行了實際更改。

+0

的[Python的教程](http://docs.python.org/2/tutorial/datastructures.html)解釋了大量的像這樣的基本東西 – dbr

+1

我不會推薦嘗試這樣做。最好將代碼和數據完全分開,例如將數據存儲在讀入的'json'文件中,例如像這樣:'list = json.load(open('data.json'))'(當然你需要'導入json')。你可以這樣寫:'json.dump(list,open('data。json','wb'))' –

回答

2

只需使用附加在任何你需要它:

list = [] 
list.append('hello') 
print list 
list.append('Dude') 
print list 

輸出:

['hello'] 
['hello', 'Dude']< 

簡單的方法是創建額外的文件和存儲變量存在。

代碼: LIST.TXT

list = [] 
f = open("list.txt", "r+") 
for item in f: 
    list.append(str(item).rstrip()) 

f.write("Something") 
f.close() 

後執行

hello 
Dude 

LIST.TXT:

hello 
Dude 
Something 
+0

不,我的意思是。如果在代碼中我有List =''。運行後,代碼更改爲某些List = ['hi','there'] – user2707082

+2

您有 – ton1c

+0

的郵政編碼我會在您告訴我如何從代碼對.py文件進行實際更改時開始製作代碼。 – user2707082

1

的只有d方式o它正在重寫.py文件。

即使技術上確實存在這種可能性,您也不會那麼做。

您應該將數據保存在單獨的文件中,在啓動程序時加載並在退出時保存。

有一些特殊的模塊用於存儲Python值,例如, shelve

一個很常見的選擇是以一種格式存儲數據,甚至可以通過python對象的其他語言intead來理解,例如,在像sqlite這樣的關係數據庫中。

2

從您的評論到其他答案之一,您正在尋找的是一種序列化和保存對象到文件的方法,以便您在重新運行程序後重新加載它。這是通過使用pickle完成的。

這樣的一個例子可以在堆棧溢出找到:How to save an object in Python

import pickle 

try: 
    with open('list.pk', 'rb') as input: 
     list = pickle.load(input) 
except: 
    list = [] 

list.append('something') 
print(list) 

with open('list.pk', 'wb') as output: 
    pickle.dump(list, output, pickle.HIGHEST_PROTOCOL) 
相關問題