免責聲明:
所有其他的答案是非常良好做法好的建議用於存儲數據,並在以後的閱讀他們,但既然你特別問到如何「的字符串轉換來自取出將文本文件整理成一個整數列表......「,我很樂意幫助完成這樣的事情。
然而,雖然這個答案可能是適合你的要求做了具體的東西,它絕不是最佳實踐達到你想要的(在整數列表保存,這將是更好做過什麼與JSON或YAML)。
SOLUTION
好吧,這似乎相當簡單。
您有原始的列表[10, 21, 42, 5]
。
你將它保存到一個文本文件,然後讀取它作爲一個清單才發現有兩個部分(和他們回饋字符串+什麼是額外0
?!):
['10, 21, 42, 5', '0']
好像你只需要在第一部分中,所以:
>>> x = ['10, 21, 42, 5', '0']
>>> y = x[0]
>>> print(y)
'10, 21, 42, 5'
>>> print(type(y))
str
別急,返回一個字符串!很簡單,只是通過分離", "
分裂:
>>> z = y.split(", ")
>>> print(z)
['10', '21', '42', '5']
現在,它返回一個列表,但它仍然是一個字符串列表,所以我們要做的就是名單中的每個元素轉換成類型int
(整數)。這是很容易與標準for
循環做的,但我們可以做這一個班輪與map
功能:
...
>>> print(z)
['10', '21', '42', '5']
>>> z = map(int, z) # apply int() to every elem; equi. to [int('10'), int('21'), int('42'), int('5')]
>>> print(z)
[10, 21, 42, 5]
>>> print(map(type, z)) # print out type of every element in list
[int, int, int, int]
結論
因此,考慮的讀入名單離奇的字符串x = ['10, 42, 21, 5', '0']
,你可以得到你想要的與整數的列表:
z = map(int, x[0].split(", "))
你是如何保存到文本文件,你怎麼裝呢? –
考慮類似於使用'json'序列化的字典。 'dict'鍵可以是用戶標識符,值可以是餘額。 –
如果您的郵政編碼(以最簡單的方式),您可能會得到更好的答案。 –